Skip to content

Commit cfbc39d

Browse files
committed
Pipe: Improved the total performance by disable some useless logic (#17448)
1 parent b0a27a4 commit cfbc39d

16 files changed

Lines changed: 31 additions & 2365 deletions

File tree

‎.github/workflows/daily-it.yml‎

Lines changed: 0 additions & 992 deletions
Large diffs are not rendered by default.

‎.github/workflows/pipe-it.yml‎

Lines changed: 0 additions & 1083 deletions
This file was deleted.

‎integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/tablemodel/manual/basic/IoTDBPipeProtocolIT.java‎

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -351,11 +351,6 @@ public void testAsyncConnectorUseNodeUrls() throws Exception {
351351
doTestUseNodeUrls(BuiltinPipePlugin.IOTDB_THRIFT_ASYNC_CONNECTOR.getPipePluginName());
352352
}
353353

354-
@Test
355-
public void testAirGapConnectorUseNodeUrls() throws Exception {
356-
doTestUseNodeUrls(BuiltinPipePlugin.IOTDB_AIR_GAP_CONNECTOR.getPipePluginName());
357-
}
358-
359354
private void doTestUseNodeUrls(String connectorName) throws Exception {
360355
senderEnv
361356
.getConfig()
@@ -398,16 +393,7 @@ private void doTestUseNodeUrls(String connectorName) throws Exception {
398393
};
399394

400395
for (final DataNodeWrapper wrapper : receiverEnv.getDataNodeWrapperList()) {
401-
if (connectorName.equals(BuiltinPipePlugin.IOTDB_AIR_GAP_CONNECTOR.getPipePluginName())) {
402-
// Use default port for convenience
403-
nodeUrlsBuilder
404-
.append(wrapper.getIp())
405-
.append(":")
406-
.append(wrapper.getPipeAirGapReceiverPort())
407-
.append(",");
408-
} else {
409-
nodeUrlsBuilder.append(wrapper.getIpAndPortString()).append(",");
410-
}
396+
nodeUrlsBuilder.append(wrapper.getIpAndPortString()).append(",");
411397
}
412398

413399
try (final SyncConfigNodeIServiceClient client =

‎integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/treemodel/auto/basic/IoTDBPipeProtocolIT.java‎

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -345,11 +345,6 @@ public void testAsyncConnectorUseNodeUrls() throws Exception {
345345
doTestUseNodeUrls(BuiltinPipePlugin.IOTDB_THRIFT_ASYNC_CONNECTOR.getPipePluginName());
346346
}
347347

348-
@Test
349-
public void testAirGapConnectorUseNodeUrls() throws Exception {
350-
doTestUseNodeUrls(BuiltinPipePlugin.IOTDB_AIR_GAP_CONNECTOR.getPipePluginName());
351-
}
352-
353348
private void doTestUseNodeUrls(String sinkName) throws Exception {
354349
senderEnv
355350
.getConfig()
@@ -384,16 +379,7 @@ private void doTestUseNodeUrls(String sinkName) throws Exception {
384379

385380
final StringBuilder nodeUrlsBuilder = new StringBuilder();
386381
for (final DataNodeWrapper wrapper : receiverEnv.getDataNodeWrapperList()) {
387-
if (sinkName.equals(BuiltinPipePlugin.IOTDB_AIR_GAP_CONNECTOR.getPipePluginName())) {
388-
// Use default port for convenience
389-
nodeUrlsBuilder
390-
.append(wrapper.getIp())
391-
.append(":")
392-
.append(wrapper.getPipeAirGapReceiverPort())
393-
.append(",");
394-
} else {
395-
nodeUrlsBuilder.append(wrapper.getIpAndPortString()).append(",");
396-
}
382+
nodeUrlsBuilder.append(wrapper.getIpAndPortString()).append(",");
397383
}
398384

399385
try (final SyncConfigNodeIServiceClient client =

‎iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/agent/plugin/PipeConfigRegionSinkConstructor.java‎

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.apache.iotdb.commons.pipe.agent.plugin.builtin.BuiltinPipePlugin;
2323
import org.apache.iotdb.commons.pipe.agent.plugin.builtin.sink.donothing.DoNothingSink;
2424
import org.apache.iotdb.commons.pipe.agent.plugin.constructor.PipeSinkConstructor;
25-
import org.apache.iotdb.confignode.manager.pipe.sink.protocol.IoTDBConfigRegionAirGapSink;
2625
import org.apache.iotdb.confignode.manager.pipe.sink.protocol.IoTDBConfigRegionSink;
2726
import org.apache.iotdb.pipe.api.PipeConnector;
2827

@@ -41,9 +40,6 @@ protected void initConstructors() {
4140
pluginConstructors.put(
4241
BuiltinPipePlugin.IOTDB_THRIFT_ASYNC_CONNECTOR.getPipePluginName(),
4342
IoTDBConfigRegionSink::new);
44-
pluginConstructors.put(
45-
BuiltinPipePlugin.IOTDB_AIR_GAP_CONNECTOR.getPipePluginName(),
46-
IoTDBConfigRegionAirGapSink::new);
4743
pluginConstructors.put(
4844
BuiltinPipePlugin.DO_NOTHING_CONNECTOR.getPipePluginName(), DoNothingSink::new);
4945

@@ -55,8 +51,6 @@ protected void initConstructors() {
5551
BuiltinPipePlugin.IOTDB_THRIFT_SYNC_SINK.getPipePluginName(), IoTDBConfigRegionSink::new);
5652
pluginConstructors.put(
5753
BuiltinPipePlugin.IOTDB_THRIFT_ASYNC_SINK.getPipePluginName(), IoTDBConfigRegionSink::new);
58-
pluginConstructors.put(
59-
BuiltinPipePlugin.IOTDB_AIR_GAP_SINK.getPipePluginName(), IoTDBConfigRegionAirGapSink::new);
6054
pluginConstructors.put(
6155
BuiltinPipePlugin.DO_NOTHING_SINK.getPipePluginName(), DoNothingSink::new);
6256
}

‎iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/plugin/dataregion/PipeDataRegionProcessorConstructor.java‎

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,10 @@
2121

2222
import org.apache.iotdb.commons.pipe.agent.plugin.builtin.BuiltinPipePlugin;
2323
import org.apache.iotdb.commons.pipe.agent.plugin.builtin.processor.donothing.DoNothingProcessor;
24-
import org.apache.iotdb.commons.pipe.agent.plugin.builtin.processor.throwing.ThrowingExceptionProcessor;
2524
import org.apache.iotdb.commons.pipe.agent.plugin.constructor.PipeProcessorConstructor;
2625
import org.apache.iotdb.commons.pipe.agent.plugin.meta.DataNodePipePluginMetaKeeper;
27-
import org.apache.iotdb.db.pipe.processor.aggregate.AggregateProcessor;
28-
import org.apache.iotdb.db.pipe.processor.aggregate.operator.processor.StandardStatisticsOperatorProcessor;
29-
import org.apache.iotdb.db.pipe.processor.aggregate.window.processor.TumblingWindowingProcessor;
30-
import org.apache.iotdb.db.pipe.processor.downsampling.changing.ChangingValueSamplingProcessor;
31-
import org.apache.iotdb.db.pipe.processor.downsampling.sdt.SwingingDoorTrendingSamplingProcessor;
32-
import org.apache.iotdb.db.pipe.processor.downsampling.tumbling.TumblingTimeSamplingProcessor;
3326
import org.apache.iotdb.db.pipe.processor.iotconsensusv2.IoTConsensusV2Processor;
3427
import org.apache.iotdb.db.pipe.processor.schemachange.RenameDatabaseProcessor;
35-
import org.apache.iotdb.db.pipe.processor.twostage.plugin.TwoStageCountProcessor;
3628

3729
class PipeDataRegionProcessorConstructor extends PipeProcessorConstructor {
3830

@@ -44,28 +36,6 @@ class PipeDataRegionProcessorConstructor extends PipeProcessorConstructor {
4436
protected void initConstructors() {
4537
pluginConstructors.put(
4638
BuiltinPipePlugin.DO_NOTHING_PROCESSOR.getPipePluginName(), DoNothingProcessor::new);
47-
pluginConstructors.put(
48-
BuiltinPipePlugin.TUMBLING_TIME_SAMPLING_PROCESSOR.getPipePluginName(),
49-
TumblingTimeSamplingProcessor::new);
50-
pluginConstructors.put(
51-
BuiltinPipePlugin.SDT_SAMPLING_PROCESSOR.getPipePluginName(),
52-
SwingingDoorTrendingSamplingProcessor::new);
53-
pluginConstructors.put(
54-
BuiltinPipePlugin.CHANGING_VALUE_SAMPLING_PROCESSOR.getPipePluginName(),
55-
ChangingValueSamplingProcessor::new);
56-
pluginConstructors.put(
57-
BuiltinPipePlugin.THROWING_EXCEPTION_PROCESSOR.getPipePluginName(),
58-
ThrowingExceptionProcessor::new);
59-
pluginConstructors.put(
60-
BuiltinPipePlugin.AGGREGATE_PROCESSOR.getPipePluginName(), AggregateProcessor::new);
61-
pluginConstructors.put(
62-
BuiltinPipePlugin.STANDARD_STATISTICS_PROCESSOR.getPipePluginName(),
63-
StandardStatisticsOperatorProcessor::new);
64-
pluginConstructors.put(
65-
BuiltinPipePlugin.TUMBLING_WINDOWING_PROCESSOR.getPipePluginName(),
66-
TumblingWindowingProcessor::new);
67-
pluginConstructors.put(
68-
BuiltinPipePlugin.COUNT_POINT_PROCESSOR.getPipePluginName(), TwoStageCountProcessor::new);
6939
pluginConstructors.put(
7040
BuiltinPipePlugin.IOT_CONSENSUS_V2_PROCESSOR.getPipePluginName(),
7141
IoTConsensusV2Processor::new);

‎iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/plugin/dataregion/PipeDataRegionSinkConstructor.java‎

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,8 @@
2323
import org.apache.iotdb.commons.pipe.agent.plugin.builtin.sink.donothing.DoNothingSink;
2424
import org.apache.iotdb.commons.pipe.agent.plugin.constructor.PipeSinkConstructor;
2525
import org.apache.iotdb.commons.pipe.agent.plugin.meta.DataNodePipePluginMetaKeeper;
26-
import org.apache.iotdb.db.pipe.sink.protocol.airgap.IoTDBDataRegionAirGapSink;
2726
import org.apache.iotdb.db.pipe.sink.protocol.iotconsensusv2.IoTConsensusV2AsyncSink;
2827
import org.apache.iotdb.db.pipe.sink.protocol.legacy.IoTDBLegacyPipeSink;
29-
import org.apache.iotdb.db.pipe.sink.protocol.opcda.OpcDaSink;
30-
import org.apache.iotdb.db.pipe.sink.protocol.opcua.OpcUaSink;
3128
import org.apache.iotdb.db.pipe.sink.protocol.thrift.async.IoTDBDataRegionAsyncSink;
3229
import org.apache.iotdb.db.pipe.sink.protocol.thrift.sync.IoTDBDataRegionSyncSink;
3330
import org.apache.iotdb.db.pipe.sink.protocol.websocket.WebSocketSink;
@@ -63,13 +60,8 @@ protected void initConstructors() {
6360
pluginConstructors.put(
6461
BuiltinPipePlugin.IOTDB_LEGACY_PIPE_CONNECTOR.getPipePluginName(),
6562
IoTDBLegacyPipeSink::new);
66-
pluginConstructors.put(
67-
BuiltinPipePlugin.IOTDB_AIR_GAP_CONNECTOR.getPipePluginName(),
68-
IoTDBDataRegionAirGapSink::new);
6963
pluginConstructors.put(
7064
BuiltinPipePlugin.WEBSOCKET_CONNECTOR.getPipePluginName(), WebSocketSink::new);
71-
pluginConstructors.put(BuiltinPipePlugin.OPC_UA_CONNECTOR.getPipePluginName(), OpcUaSink::new);
72-
pluginConstructors.put(BuiltinPipePlugin.OPC_DA_CONNECTOR.getPipePluginName(), OpcDaSink::new);
7365
pluginConstructors.put(
7466
BuiltinPipePlugin.DO_NOTHING_CONNECTOR.getPipePluginName(), DoNothingSink::new);
7567
pluginConstructors.put(
@@ -86,12 +78,8 @@ protected void initConstructors() {
8678
IoTDBDataRegionAsyncSink::new);
8779
pluginConstructors.put(
8880
BuiltinPipePlugin.IOTDB_LEGACY_PIPE_SINK.getPipePluginName(), IoTDBLegacyPipeSink::new);
89-
pluginConstructors.put(
90-
BuiltinPipePlugin.IOTDB_AIR_GAP_SINK.getPipePluginName(), IoTDBDataRegionAirGapSink::new);
9181
pluginConstructors.put(
9282
BuiltinPipePlugin.WEBSOCKET_SINK.getPipePluginName(), WebSocketSink::new);
93-
pluginConstructors.put(BuiltinPipePlugin.OPC_UA_SINK.getPipePluginName(), OpcUaSink::new);
94-
pluginConstructors.put(BuiltinPipePlugin.OPC_DA_SINK.getPipePluginName(), OpcDaSink::new);
9583
pluginConstructors.put(
9684
BuiltinPipePlugin.DO_NOTHING_SINK.getPipePluginName(), DoNothingSink::new);
9785
pluginConstructors.put(

‎iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/plugin/schemaregion/PipeSchemaRegionSinkConstructor.java‎

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.apache.iotdb.commons.pipe.agent.plugin.builtin.BuiltinPipePlugin;
2323
import org.apache.iotdb.commons.pipe.agent.plugin.builtin.sink.donothing.DoNothingSink;
2424
import org.apache.iotdb.commons.pipe.agent.plugin.constructor.PipeSinkConstructor;
25-
import org.apache.iotdb.db.pipe.sink.protocol.airgap.IoTDBSchemaRegionAirGapSink;
2625
import org.apache.iotdb.db.pipe.sink.protocol.thrift.sync.IoTDBSchemaRegionSink;
2726
import org.apache.iotdb.pipe.api.PipeConnector;
2827

@@ -41,9 +40,6 @@ protected void initConstructors() {
4140
pluginConstructors.put(
4241
BuiltinPipePlugin.IOTDB_THRIFT_ASYNC_CONNECTOR.getPipePluginName(),
4342
IoTDBSchemaRegionSink::new);
44-
pluginConstructors.put(
45-
BuiltinPipePlugin.IOTDB_AIR_GAP_CONNECTOR.getPipePluginName(),
46-
IoTDBSchemaRegionAirGapSink::new);
4743
pluginConstructors.put(
4844
BuiltinPipePlugin.DO_NOTHING_CONNECTOR.getPipePluginName(), DoNothingSink::new);
4945

@@ -55,8 +51,6 @@ protected void initConstructors() {
5551
BuiltinPipePlugin.IOTDB_THRIFT_SYNC_SINK.getPipePluginName(), IoTDBSchemaRegionSink::new);
5652
pluginConstructors.put(
5753
BuiltinPipePlugin.IOTDB_THRIFT_ASYNC_SINK.getPipePluginName(), IoTDBSchemaRegionSink::new);
58-
pluginConstructors.put(
59-
BuiltinPipePlugin.IOTDB_AIR_GAP_SINK.getPipePluginName(), IoTDBSchemaRegionAirGapSink::new);
6054
pluginConstructors.put(
6155
BuiltinPipePlugin.DO_NOTHING_SINK.getPipePluginName(), DoNothingSink::new);
6256
}

‎iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/IoTDBDataRegionSource.java‎

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,21 @@ public class IoTDBDataRegionSource extends IoTDBSource {
151151
public void validate(final PipeParameterValidator validator) throws Exception {
152152
super.validate(validator);
153153

154+
final boolean forwardingPipeRequests =
155+
validator
156+
.getParameters()
157+
.getBooleanOrDefault(
158+
Arrays.asList(
159+
PipeSourceConstant.EXTRACTOR_FORWARDING_PIPE_REQUESTS_KEY,
160+
PipeSourceConstant.SOURCE_FORWARDING_PIPE_REQUESTS_KEY),
161+
PipeSourceConstant.EXTRACTOR_FORWARDING_PIPE_REQUESTS_DEFAULT_VALUE);
162+
if (!forwardingPipeRequests) {
163+
throw new PipeParameterNotValidException(
164+
String.format(
165+
"The parameter %s cannot be set to false.",
166+
PipeSourceConstant.SOURCE_FORWARDING_PIPE_REQUESTS_KEY));
167+
}
168+
154169
final boolean isTreeDialect =
155170
validator
156171
.getParameters()
@@ -274,32 +289,6 @@ public void validate(final PipeParameterValidator validator) throws Exception {
274289
Arrays.asList(EXTRACTOR_REALTIME_ENABLE_KEY, SOURCE_REALTIME_ENABLE_KEY),
275290
EXTRACTOR_REALTIME_ENABLE_DEFAULT_VALUE));
276291

277-
// Validate source.realtime.mode
278-
if (validator
279-
.getParameters()
280-
.getBooleanOrDefault(
281-
Arrays.asList(EXTRACTOR_REALTIME_ENABLE_KEY, SOURCE_REALTIME_ENABLE_KEY),
282-
EXTRACTOR_REALTIME_ENABLE_DEFAULT_VALUE)
283-
|| validator
284-
.getParameters()
285-
.hasAnyAttributes(
286-
SOURCE_START_TIME_KEY,
287-
EXTRACTOR_START_TIME_KEY,
288-
SOURCE_END_TIME_KEY,
289-
EXTRACTOR_END_TIME_KEY)) {
290-
validator.validateAttributeValueRange(
291-
validator.getParameters().hasAttribute(EXTRACTOR_REALTIME_MODE_KEY)
292-
? EXTRACTOR_REALTIME_MODE_KEY
293-
: SOURCE_REALTIME_MODE_KEY,
294-
true,
295-
EXTRACTOR_REALTIME_MODE_FILE_VALUE,
296-
EXTRACTOR_REALTIME_MODE_HYBRID_VALUE,
297-
EXTRACTOR_REALTIME_MODE_LOG_VALUE,
298-
EXTRACTOR_REALTIME_MODE_FORCED_LOG_VALUE,
299-
EXTRACTOR_REALTIME_MODE_STREAM_MODE_VALUE,
300-
EXTRACTOR_REALTIME_MODE_BATCH_MODE_VALUE);
301-
}
302-
303292
checkInvalidParameters(validator);
304293

305294
constructHistoricalSource();
@@ -463,6 +452,13 @@ private void constructRealtimeSource(final PipeParameters parameters) {
463452
return;
464453
}
465454

455+
if (!(pipeName != null
456+
&& (pipeName.startsWith(PipeStaticMeta.SUBSCRIPTION_PIPE_PREFIX)
457+
|| pipeName.startsWith(PipeStaticMeta.CONSENSUS_PIPE_PREFIX)))) {
458+
realtimeSource = new PipeRealtimeDataRegionTsFileSource();
459+
return;
460+
}
461+
466462
// Use hybrid mode by default
467463
if (!parameters.hasAnyAttributes(EXTRACTOR_MODE_STREAMING_KEY, SOURCE_MODE_STREAMING_KEY)
468464
&& !parameters.hasAnyAttributes(EXTRACTOR_REALTIME_MODE_KEY, SOURCE_REALTIME_MODE_KEY)) {

‎iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/realtime/PipeRealtimeDataRegionSource.java‎

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ public abstract class PipeRealtimeDataRegionSource implements PipeExtractor {
120120
private final AtomicReference<Pair<Long, Long>> dataRegionTimePartitionIdBound =
121121
new AtomicReference<>();
122122

123-
protected boolean isForwardingPipeRequests;
123+
protected boolean isForwardingPipeRequests = true;
124124

125125
private boolean shouldTransferModFile; // Whether to transfer mods
126126

@@ -259,22 +259,7 @@ public void customize(
259259
? TimePartitionUtils.getTimePartitionId(realtimeDataExtractionEndTime)
260260
: TimePartitionUtils.getTimePartitionId(realtimeDataExtractionEndTime) - 1;
261261

262-
final boolean isDoubleLiving =
263-
parameters.getBooleanOrDefault(
264-
Arrays.asList(
265-
PipeSourceConstant.EXTRACTOR_MODE_DOUBLE_LIVING_KEY,
266-
PipeSourceConstant.SOURCE_MODE_DOUBLE_LIVING_KEY),
267-
PipeSourceConstant.EXTRACTOR_MODE_DOUBLE_LIVING_DEFAULT_VALUE);
268-
if (isDoubleLiving) {
269-
isForwardingPipeRequests = false;
270-
} else {
271-
isForwardingPipeRequests =
272-
parameters.getBooleanOrDefault(
273-
Arrays.asList(
274-
PipeSourceConstant.EXTRACTOR_FORWARDING_PIPE_REQUESTS_KEY,
275-
PipeSourceConstant.SOURCE_FORWARDING_PIPE_REQUESTS_KEY),
276-
PipeSourceConstant.EXTRACTOR_FORWARDING_PIPE_REQUESTS_DEFAULT_VALUE);
277-
}
262+
isForwardingPipeRequests = true;
278263

279264
if (parameters.hasAnyAttributes(EXTRACTOR_MODS_KEY, SOURCE_MODS_KEY)) {
280265
shouldTransferModFile =

0 commit comments

Comments
 (0)