-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Open
opensearch-project/documentation-website
#10937Labels
Search:PerformanceenhancementEnhancement or improvement to existing feature or requestEnhancement or improvement to existing feature or requestuntriaged
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 dedicatedForkJoinPool
for processing gRPC service calls - Add
grpc.netty.executor_count
setting to control this GRPC request processing thread pool size - (Note this is in contrast with
grpc.netty.worker_count
which 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_count
threads)
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 requestuntriaged
Type
Projects
Status
🆕 New