Details
-
Task
-
Resolution: Done
-
Major - P3
-
None
-
None
-
None
-
None
-
Fully Compatible
-
Service Arch 2023-12-11
Description
When doing initial performance testing in SERVER-80572, we found that gRPC was a lot slower than ASIO, and saw through flamegraphs that a lot of that slowness was due to gRPC acquiring a mutex shared by the whole process to synchronize access to the completion queue.
After looking around, we saw on the gRPC performance page that using the sync server is not suggested for performance-sensitive applications. gRPC instead provides a callback API, that is supposed to be easier to use than the async API but faster than the sync API.
Investigate the changes required to implement the callback api instead of the sync api, and run initial performance benchmarks on them.