You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-Optimize gRPC transport thread management for improved throughput ([#19278](https://github.com/opensearch-project/OpenSearch/pull/19278))
34
34
35
35
### Changed
36
36
- Refactor `if-else` chains to use `Java 17 pattern matching switch expressions`(([#18965](https://github.com/opensearch-project/OpenSearch/pull/18965))
@@ -76,6 +76,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
76
76
- Fix lag metric for pull-based ingestion when streaming source is empty ([#19393](https://github.com/opensearch-project/OpenSearch/pull/19393))
77
77
- Fix ingestion state xcontent serialization in IndexMetadata and fail fast on mapping errors([#19320](https://github.com/opensearch-project/OpenSearch/pull/19320))
78
78
- Fix updated keyword field params leading to stale responses from request cache ([#19385](https://github.com/opensearch-project/OpenSearch/pull/19385))
79
+
- Implement SslHandler retrieval logic for transport-reactor-netty4 plugin ([#19458](https://github.com/opensearch-project/OpenSearch/pull/19458))
79
80
80
81
### Dependencies
81
82
- Bump `com.gradleup.shadow:shadow-gradle-plugin` from 8.3.5 to 8.3.9 ([#19400](https://github.com/opensearch-project/OpenSearch/pull/19400))
|**grpc.host**| List of addresses the gRPC server will bind to. |`["0.0.0.0"]`|`[]`|
30
30
|**grpc.bind_host**| List of addresses to bind the gRPC server to. Can be distinct from publish hosts. |`["0.0.0.0", "::"]`| Value of `grpc.host`|
31
31
|**grpc.publish_host**| List of hostnames or IPs published to peers for client connections. |`["thisnode.example.com"]`| Value of `grpc.host`|
32
-
|**grpc.netty.worker_count**| Number of Netty worker threads for the gRPC server. Controls concurrency and parallelism. |`2`| Number of processors |
32
+
|**grpc.netty.worker_count**| Number of Netty worker threads for the gRPC server. Controls network I/O concurrency. |`2`| Number of processors |
33
+
|**grpc.netty.executor_count**| Number of threads in the ForkJoinPool for processing gRPC service calls. Controls request processing parallelism. |`32`| 2 × Number of processors |
33
34
|**grpc.netty.max_concurrent_connection_calls**| Maximum number of simultaneous in-flight requests allowed per client connection. |`200`|`100`|
34
35
|**grpc.netty.max_connection_age**| Maximum age a connection is allowed before being gracefully closed. Supports time units like `ms`, `s`, `m`. |`500ms`| Not set (no limit) |
35
36
|**grpc.netty.max_connection_idle**| Maximum duration a connection can be idle before being closed. Supports time units like `ms`, `s`, `m`. |`2m`| Not set (no limit) |
The dedicated thread pool used for gRPC request processing is registered as a standard OpenSearch thread pool named `grpc`, controlled by the `grpc.netty.executor_count` setting.
65
+
66
+
The gRPC thread pool stats can be monitored using:
67
+
68
+
```bash
69
+
curl -X GET "localhost:9200/_nodes/stats/thread_pool?filter_path=nodes.*.thread_pool.grpc"
Copy file name to clipboardExpand all lines: modules/transport-grpc/src/main/java/org/opensearch/transport/grpc/ssl/SecureNetty4GrpcServerTransport.java
0 commit comments