-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Server Programmability
Currently, ServiceContext is the object that holds the set of clients associated with a process. This means operations such as iterating over clients with the LockedClientsCursor by default access all clients regardless of cluster role.
Move the _clients member variable and all its associated functionality from ServiceContext to Service so these functionalities immediately become cluster role-aware. Investigate uses of the ServiceContext APIs that are moved to Service for any cases where we want visibility into clients in a role-agnostic fashion and build ServiceContext equivalents which iterate over its constituent Services.