-
Type: Task
-
Resolution: Done
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Internal Code
-
None
-
Fully Compatible
-
Service Arch 2024-01-22, Service Arch 2024-02-05
The server makes a new OperationContext for each user operation. Instances of OperationContext are decorated, and making and destroying these decorations is expensive. This ticket should go over the list of all decorations on OperationContext and classify them into the following categories:
- Trivially constructed and destructed, and already benefit from
SERVER-76788. - Can be made cheaper by either making construction/destruction trivial, reusing decorations across multiple operations, simplifying the constructor/destructor, etc.
- Other (i.e. decorations with complex construction/destruction logic that cannot be easily simplified).
Once we have this list, we can target the second and third groups by:
- Filing a ticket to simplify decorations that belong to the second group.
- File tickets for decorations that belong to the third group and assign it to the corresponding server team.
- is related to
-
SERVER-85828 Optimize CurOpStack construction and destruction
- Closed
-
SERVER-85829 Remove OperationTimeTrackerHolder's usage of std::shared_ptr
- Closed
-
SERVER-85830 Ensure the timers owner by OperationCPUTimers do not outlive it
- Closed
-
SERVER-85831 Combine replication OperationContext decorations
- Closed
-
SERVER-85832 Combine OpObserver decorations on OperationContext
- Closed
-
SERVER-85833 Combine metadata OperationContext decorations
- Closed
-
SERVER-85834 Combine query OperationContext decorations
- Closed
- related to
-
SERVER-85411 Evaluate the benefits of making `OpCtx` decorations role-specific
- Backlog
-
SERVER-81848 Make decoration construction eager again
- Closed
-
SERVER-76788 Elide useless constructor calls for trivially-constructible Decorations
- Closed