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

Associate ServiceExecutors with Clients

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.7.0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible
    • Service Arch 2020-07-27, Service Arch 2020-08-10, Service Arch 2020-08-24, Service arch 2020-09-07

      ServiceExecutors are executors: asynchronous task queues processed by one or more threads. When the ServiceStateMachine needs to queue a new iteration of the command loop, the schedule that work onto a ServiceExecutor (see here). For normal users, all executors are either the ServiceExecutorSynchronous or the ServiceExecutorReserved (which is set here).

      We want to allow each Client to have its own ServiceExecutor pointer as a mutable member. Importantly, each Client does not own their ServiceExecutor. We expect that a command or the even ServiceStateMachine might change which executor a client is associated with. Once this is done, we want to remove the ServiceExecutor associated with the ServiceStateMachine (see here) and use the client's wherever it would be used.

            Assignee:
            ben.caimano@mongodb.com Benjamin Caimano (Inactive)
            Reporter:
            ben.caimano@mongodb.com Benjamin Caimano (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: