-
Type: Task
-
Resolution: Won't Do
-
Priority: Major - P3
-
Affects Version/s: None
-
Labels:None
Description
In currentOp, each external client entry will now have a boolean field "threaded" that describes if it is eligible to occupy a dedicated thread for service execution/ingress networking. Note that it may not yet have occupied said thread but is expected to for the following operation.
Description of Linked Ticket
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.
Scope of changes
Impact to Other Docs
MVP (Work and Date)
Resources (Scope or Design Docs, Invision, etc.)
- documents
-
SERVER-48980 Associate ServiceExecutors with Clients
- Closed