Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-54143

Convert ServiceEntryPointImpl to IngressSessionManager

    XMLWordPrintableJSON

Details

    • Icon: Improvement Improvement
    • Resolution: Unresolved
    • Icon: Major - P3 Major - P3
    • None
    • None
    • None
    • Service Arch

    Description

      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
      

      Attachments

        Activity

          People

            backlog-server-servicearch Backlog - Service Architecture
            ben.caimano@mongodb.com Benjamin Caimano (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: