|
The operation session info for a command has to parse it's member fields out of the soup of the top level attributes for a command. I'd like to investigate packing those fields into a fixed width payload (i.e. one top level field, storing a bindata) and seeing if a request that packed data in such a manner was faster to parse than one using the current flow.
The main places to make this change would be in https://github.com/mongodb/mongo/blob/380711ea7dba41cb372a12a8d5258fdc124a0d23/src/mongo/db/initialize_operation_session_info.cpp
and in the corresponding idl file: https://github.com/mongodb/mongo/blob/380711ea7dba41cb372a12a8d5258fdc124a0d23/src/mongo/db/logical_session_id.idl#L115-L139
After making that synthetic change, we should try out running a localized performance test (using one of the existing network interface integration tests is likely to be easiest: https://github.com/mongodb/mongo/blob/380711ea7dba41cb372a12a8d5258fdc124a0d23/src/mongo/executor/non_auth_task_executor_integration_test.cpp) and measuring what kind of results we can get
|