Skip to content

Commit bf599e3

Browse files
authored
[Streaming Indexing] Introduce new experimental HTTP transport based on Netty 4 and Project Reactor (Reactor Netty) (#9672) (#11108)
* [Streaming Indexing] Introduce new experimental server HTTP transport based on Netty 4 and Project Reactor (Reactor Netty) * Remove HttpChunk for now since it is not used in non-streaming APIs * Fix postmerge issues --------- (cherry picked from commit 1782b90) Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
1 parent 11791fa commit bf599e3

File tree

67 files changed

+3696
-91
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+3696
-91
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
2222
- Introduce ConcurrentQueryProfiler to profile query using concurrent segment search path and support concurrency during rewrite and create weight ([10352](https://github.com/opensearch-project/OpenSearch/pull/10352))
2323
- Implement on behalf of token passing for extensions ([#8679](https://github.com/opensearch-project/OpenSearch/pull/8679))
2424
- Provide service accounts tokens to extensions ([#9618](https://github.com/opensearch-project/OpenSearch/pull/9618))
25+
- [Streaming Indexing] Introduce new experimental server HTTP transport based on Netty 4 and Project Reactor (Reactor Netty) ([#9672](https://github.com/opensearch-project/OpenSearch/pull/9672))
2526

2627
### Dependencies
2728
- Bumps jetty version to 9.4.52.v20230823 to fix GMS-2023-1857 ([#9822](https://github.com/opensearch-project/OpenSearch/pull/9822))

buildSrc/version.properties

+4
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ jna = 5.13.0
2929
netty = 4.1.100.Final
3030
joda = 2.12.2
3131

32+
# project reactor
33+
reactor_netty = 1.1.12
34+
reactor = 3.5.11
35+
3236
# client dependencies
3337
httpclient = 4.5.14
3438
httpcore = 4.4.16

modules/transport-netty4/src/main/java/org/opensearch/http/netty4/Netty4HttpServerTransport.java

+14
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,9 @@
9999
import static org.opensearch.http.HttpTransportSettings.SETTING_HTTP_TCP_SEND_BUFFER_SIZE;
100100
import static org.opensearch.http.HttpTransportSettings.SETTING_PIPELINING_MAX_EVENTS;
101101

102+
/**
103+
* The HTTP transport implementations based on Netty 4.
104+
*/
102105
public class Netty4HttpServerTransport extends AbstractHttpServerTransport {
103106
private static final Logger logger = LogManager.getLogger(Netty4HttpServerTransport.class);
104107

@@ -167,6 +170,17 @@ public class Netty4HttpServerTransport extends AbstractHttpServerTransport {
167170
private volatile ServerBootstrap serverBootstrap;
168171
private volatile SharedGroupFactory.SharedGroup sharedGroup;
169172

173+
/**
174+
* Creates new HTTP transport implementations based on Netty 4
175+
* @param settings seetings
176+
* @param networkService network service
177+
* @param bigArrays big array allocator
178+
* @param threadPool thread pool instance
179+
* @param xContentRegistry XContent registry instance
180+
* @param dispatcher dispatcher instance
181+
* @param clusterSettings cluster settings
182+
* @param sharedGroupFactory shared group factory
183+
*/
170184
public Netty4HttpServerTransport(
171185
Settings settings,
172186
NetworkService networkService,

plugins/discovery-ec2/licenses/reactive-streams-1.0.4.jar.sha1

-1
This file was deleted.

plugins/discovery-ec2/licenses/reactive-streams-LICENSE.txt

-21
This file was deleted.

plugins/repository-azure/build.gradle

+4-18
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,8 @@ dependencies {
5656
api "io.netty:netty-transport-native-unix-common:${versions.netty}"
5757
implementation project(':modules:transport-netty4')
5858
api 'com.azure:azure-storage-blob:12.23.0'
59-
api 'org.reactivestreams:reactive-streams:1.0.3'
60-
api 'io.projectreactor:reactor-core:3.5.6'
61-
api 'io.projectreactor.netty:reactor-netty:1.1.8'
62-
api 'io.projectreactor.netty:reactor-netty-core:1.1.8'
63-
api 'io.projectreactor.netty:reactor-netty-http:1.1.9'
59+
api "io.projectreactor.netty:reactor-netty-core:${versions.reactor_netty}"
60+
api "io.projectreactor.netty:reactor-netty-http:${versions.reactor_netty}"
6461
api "org.slf4j:slf4j-api:${versions.slf4j}"
6562
api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}"
6663
api "com.fasterxml.jackson.core:jackson-databind:${versions.jackson_databind}"
@@ -100,7 +97,6 @@ thirdPartyAudit {
10097
'com.azure.storage.internal.avro.implementation.AvroReaderFactory',
10198
'com.azure.storage.internal.avro.implementation.schema.AvroSchema',
10299
'com.ctc.wstx.shaded.msv_core.driver.textui.Driver',
103-
'io.micrometer.core.instrument.Clock',
104100
'io.micrometer.core.instrument.Counter',
105101
'io.micrometer.core.instrument.Counter$Builder',
106102
'io.micrometer.core.instrument.DistributionSummary',
@@ -110,14 +106,10 @@ thirdPartyAudit {
110106
'io.micrometer.core.instrument.Meter',
111107
'io.micrometer.core.instrument.MeterRegistry',
112108
'io.micrometer.core.instrument.Metrics',
113-
'io.micrometer.core.instrument.Tag',
114-
'io.micrometer.core.instrument.Tags',
115109
'io.micrometer.core.instrument.Timer',
116110
'io.micrometer.core.instrument.Timer$Builder',
117111
'io.micrometer.core.instrument.Timer$Sample',
118-
'io.micrometer.core.instrument.binder.jvm.ExecutorServiceMetrics',
119112
'io.micrometer.core.instrument.composite.CompositeMeterRegistry',
120-
'io.micrometer.core.instrument.search.Search',
121113
'io.netty.channel.epoll.Epoll',
122114
'io.netty.channel.epoll.EpollDatagramChannel',
123115
'io.netty.channel.epoll.EpollServerSocketChannel',
@@ -164,12 +156,6 @@ thirdPartyAudit {
164156
'org.slf4j.impl.StaticLoggerBinder',
165157
'org.slf4j.impl.StaticMDCBinder',
166158
'org.slf4j.impl.StaticMarkerBinder',
167-
'reactor.blockhound.BlockHound$Builder',
168-
'reactor.blockhound.integration.BlockHoundIntegration',
169-
'io.micrometer.context.ContextRegistry',
170-
'io.micrometer.context.ContextSnapshot',
171-
'io.micrometer.context.ContextSnapshot$Scope',
172-
'io.micrometer.context.ThreadLocalAccessor',
173159
'io.micrometer.common.KeyValue',
174160
'io.micrometer.common.KeyValues',
175161
'io.micrometer.common.docs.KeyName',
@@ -190,6 +176,7 @@ thirdPartyAudit {
190176
'io.micrometer.tracing.propagation.Propagator',
191177
'io.micrometer.context.ContextAccessor',
192178
'io.micrometer.core.instrument.observation.MeterObservationHandler',
179+
'io.micrometer.core.instrument.Tags',
193180
'io.micrometer.observation.ObservationHandler',
194181
'io.micrometer.observation.ObservationRegistry',
195182
'io.micrometer.observation.ObservationRegistry$ObservationConfig',
@@ -210,8 +197,7 @@ thirdPartyAudit {
210197
'com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper$1',
211198
'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray',
212199
'com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator',
213-
'com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator$1',
214-
'reactor.core.publisher.Traces$SharedSecretsCallSiteSupplierFactory$TracingException'
200+
'com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator$1'
215201
)
216202
}
217203

plugins/repository-azure/licenses/reactive-streams-1.0.3.jar.sha1

-1
This file was deleted.

plugins/repository-azure/licenses/reactive-streams-LICENSE.txt

-21
This file was deleted.

plugins/repository-azure/licenses/reactor-core-3.5.6.jar.sha1

-1
This file was deleted.

plugins/repository-azure/licenses/reactor-netty-1.1.8.jar.sha1

-1
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
378dc5a375e6440099e837b22cf4b01341cbe4ea

plugins/repository-azure/licenses/reactor-netty-core-1.1.8.jar.sha1

-1
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
e839fadb8f45d8a7a2783466faedd03373366c23

plugins/repository-azure/licenses/reactor-netty-http-1.1.9.jar.sha1

-1
This file was deleted.

plugins/repository-s3/build.gradle

-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ dependencies {
7070
api "software.amazon.awssdk:sts:${versions.aws}"
7171
api "software.amazon.awssdk:netty-nio-client:${versions.aws}"
7272

73-
api "org.reactivestreams:reactive-streams:${versions.reactivestreams}"
7473
api "org.apache.httpcomponents:httpclient:${versions.httpclient}"
7574
api "org.apache.httpcomponents:httpcore:${versions.httpcore}"
7675
api "commons-logging:commons-logging:${versions.commonslogging}"

plugins/repository-s3/licenses/reactive-streams-1.0.4.jar.sha1

-1
This file was deleted.

plugins/repository-s3/licenses/reactive-streams-LICENSE.txt

-21
This file was deleted.

plugins/repository-s3/licenses/reactive-streams-NOTICE.txt

Whitespace-only changes.

0 commit comments

Comments
 (0)