-
Couldn't load subscription status.
- Fork 2.3k
Closed
opensearch-project/documentation-website
#10937Labels
Search:PerformanceenhancementEnhancement or improvement to existing feature or requestEnhancement or improvement to existing feature or request
Description
Is your feature request related to a problem? Please describe
Investigate GRPC server optimizations for higher throughput.
Current Issues
- Event Loop Blocking: gRPC service methods execute directly on Netty event loop threads via
directExecutor(), causing I/O blocking during protobuf serialization - Limited Concurrency Control: No dedicated setting to tune gRPC request processing parallelism independently of network I/O threads
- Shared Event Loop Groups: GRPC boss and worker event loops are not properly separated, leading to connection acceptance competing with I/O processing
Describe the solution you'd like
1: Dedicated gRPC Executor Thread Pool (solves #1 and #2)
- Replace
directExecutor()with a dedicatedForkJoinPoolfor processing gRPC service calls - Add
grpc.netty.executor_countsetting to control this GRPC request processing thread pool size - (Note this is in contrast with
grpc.netty.worker_countwhich is controlling the number of network I/O threads)
2: Separated Event Loop Groups (solves #3)
- Prevent connection acceptance from blocking I/O processing:
- Boss Event Loop Group: Dedicated to accepting new client connections
- Worker Event Loop Group: Dedicated to network I/O operations (
grpc.netty.worker_countthreads)
Related component
Search:Performance
Describe alternatives you've considered
No response
Additional context
No response
Metadata
Metadata
Assignees
Labels
Search:PerformanceenhancementEnhancement or improvement to existing feature or requestEnhancement or improvement to existing feature or request
Type
Projects
Status
✅ Done
Status
Done/Won't Do