-
Type:
Improvement
-
Resolution: Won't Do
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Internal Code
-
Service Arch
-
Service Arch 2023-10-02, Service Arch 2023-10-16, Service Arch 2023-10-30, Service Arch 2023-11-13, Security 2023-09-18
We maintain several shared data-structures on ServiceContext. In particular, the following are modified as part of constructing and destroying instances of OperationContext:
- The unordered map that maps operation ids to clients, and a mutex that synchronizes accesses to this data structure.
- The registry that allows checking out unique operation ids.
Sharing these across many cores result in frequent cache-line evictions and performance regressions (see PERF-4626 for detailed analysis and a PoC that measures potential gains from partitioning these structures).