Just to add some detail to this question, Alex and I work on a platform which exerts a lot of control over threads and allocations to guarantee high throughput and low latency. We would like to begin exposing gRPC services from the platform without compromising performance.
Our hope was to write an async server which would enqueue work in our own thread manager and go right back to listening for incoming requests. We have seen the APIs for controlling concurrency in both `ResourceQuota` and `CompletionQueue` (e.g.
here) but it seems like there are still internal gRPC threads.
So it comes down to these questions: Can I control the total number of threads, both short-lived and long-lived, that gRPR creates? If not, can I provide a strong guarantee about the max # of threads?
(Getting arenas to work with our custom allocator is probably a topic for a future thread.)
Thanks for your help,
Jonathan