Saurabh, could you clarify where the GIL became a bottleneck in your use case? I'd also love to know more about the server setup. Did the gRPC team conduct any benchmarks beyond the documented ones, like memory profiling or CPU usage analysis, for such scenarios?
From what I see, CPU-intensive operations (if any) could be optimized using tools like Gunicorn or a reverse proxy in front of the gRPC server. For his setup, I doubt image processing or heavy computations are offloaded to the gRPC server, so Python should handle it, even on a laptop, provided memory footprint and blocking I/O are managed effectively with asyncio.
Key concerns might be:
Regarding the timeout issues in his hellostreamingworld test, try using an interceptor to log channel state. Channels can handle multiple RPCs concurrently, so consider adding unique RPC IDs for better debugging. Configure timeouts for long-running processes and ensure proper resource limits on the server. These steps could help pinpoint the issue.