-
Type: Improvement
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Service Arch
The ServiceEntryPointImpl encapsulates most of the session management logic and manages the ServiceExecutors. This has an unfortunate side effect that the ServiceStateMachine is initialized by and calls into the final ServiceEntryPoint type:
TransportLayerASIO::_acceptConnection -> ServiceEntryPointT::startSession -> ServiceStateMachine::start -> ServiceEntryPointT::handleRequest
If we remove the functionality from the ServiceEntryPoint type inheritance and attach it as a member or decoration elsewhere, we can simplify the ServiceEntryPoint interface and make ingress less dependent on the derived type of the ServiceEntryPoint:
TransportLayerASIO::_acceptConnection -> IngressSessionManager::startSession -> ServiceStateMachine::start -> ServiceEntryPointT::handleRequest
- is duplicated by
-
SERVER-64648 Complete TODO listed in SERVER-54143
- Closed
-
SERVER-84194 Summarize examples of reducing concurrency cost for core data types
- Closed
- is related to
-
SERVER-50141 ServiceStateMachineTest needs to be rewritten
- Closed
- related to
-
SERVER-64648 Complete TODO listed in SERVER-54143
- Closed