Skip to content

Commit feb55da

Browse files
committed
Pipe: Improved the total performance by disable some useless logic
1 parent 0011eb7 commit feb55da

File tree

14 files changed

+32
-2157
lines changed

14 files changed

+32
-2157
lines changed

.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 & 978 deletions
Large diffs are not rendered by default.

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.pipeconsensus.PipeConsensusProcessor;
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.PIPE_CONSENSUS_PROCESSOR.getPipePluginName(),
7141
PipeConsensusProcessor::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,10 +23,7 @@
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.legacy.IoTDBLegacyPipeSink;
28-
import org.apache.iotdb.db.pipe.sink.protocol.opcda.OpcDaSink;
29-
import org.apache.iotdb.db.pipe.sink.protocol.opcua.OpcUaSink;
3027
import org.apache.iotdb.db.pipe.sink.protocol.pipeconsensus.PipeConsensusAsyncSink;
3128
import org.apache.iotdb.db.pipe.sink.protocol.thrift.async.IoTDBDataRegionAsyncSink;
3229
import org.apache.iotdb.db.pipe.sink.protocol.thrift.sync.IoTDBDataRegionSyncSink;
@@ -59,13 +56,8 @@ protected void initConstructors() {
5956
pluginConstructors.put(
6057
BuiltinPipePlugin.IOTDB_LEGACY_PIPE_CONNECTOR.getPipePluginName(),
6158
IoTDBLegacyPipeSink::new);
62-
pluginConstructors.put(
63-
BuiltinPipePlugin.IOTDB_AIR_GAP_CONNECTOR.getPipePluginName(),
64-
IoTDBDataRegionAirGapSink::new);
6559
pluginConstructors.put(
6660
BuiltinPipePlugin.WEBSOCKET_CONNECTOR.getPipePluginName(), WebSocketSink::new);
67-
pluginConstructors.put(BuiltinPipePlugin.OPC_UA_CONNECTOR.getPipePluginName(), OpcUaSink::new);
68-
pluginConstructors.put(BuiltinPipePlugin.OPC_DA_CONNECTOR.getPipePluginName(), OpcDaSink::new);
6961
pluginConstructors.put(
7062
BuiltinPipePlugin.DO_NOTHING_CONNECTOR.getPipePluginName(), DoNothingSink::new);
7163
pluginConstructors.put(
@@ -82,12 +74,8 @@ protected void initConstructors() {
8274
IoTDBDataRegionAsyncSink::new);
8375
pluginConstructors.put(
8476
BuiltinPipePlugin.IOTDB_LEGACY_PIPE_SINK.getPipePluginName(), IoTDBLegacyPipeSink::new);
85-
pluginConstructors.put(
86-
BuiltinPipePlugin.IOTDB_AIR_GAP_SINK.getPipePluginName(), IoTDBDataRegionAirGapSink::new);
8777
pluginConstructors.put(
8878
BuiltinPipePlugin.WEBSOCKET_SINK.getPipePluginName(), WebSocketSink::new);
89-
pluginConstructors.put(BuiltinPipePlugin.OPC_UA_SINK.getPipePluginName(), OpcUaSink::new);
90-
pluginConstructors.put(BuiltinPipePlugin.OPC_DA_SINK.getPipePluginName(), OpcDaSink::new);
9179
pluginConstructors.put(
9280
BuiltinPipePlugin.DO_NOTHING_SINK.getPipePluginName(), DoNothingSink::new);
9381
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/sink/protocol/pipeconsensus/PipeConsensusAsyncSink.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ public synchronized void removeEventFromBuffer(EnrichedEvent event) {
236236
while (!current.equalsInPipeConsensus(event) && iterator.hasNext()) {
237237
current = iterator.next();
238238
}
239-
if (current.equalsInIoTConsensusV2(event)) {
239+
if (current.equalsInPipeConsensus(event)) {
240240
iterator.remove();
241241
} else {
242242
LOGGER.warn(

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

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import org.apache.iotdb.commons.consensus.DataRegionId;
2323
import org.apache.iotdb.commons.pipe.agent.task.PipeTaskAgent;
24+
import org.apache.iotdb.commons.pipe.agent.task.meta.PipeStaticMeta;
2425
import org.apache.iotdb.commons.pipe.config.constant.PipeSourceConstant;
2526
import org.apache.iotdb.commons.pipe.config.constant.SystemConstant;
2627
import org.apache.iotdb.commons.pipe.datastructure.pattern.IoTDBTreePatternOperations;
@@ -140,6 +141,21 @@ public class IoTDBDataRegionSource extends IoTDBSource {
140141
public void validate(final PipeParameterValidator validator) throws Exception {
141142
super.validate(validator);
142143

144+
final boolean forwardingPipeRequests =
145+
validator
146+
.getParameters()
147+
.getBooleanOrDefault(
148+
Arrays.asList(
149+
PipeSourceConstant.EXTRACTOR_FORWARDING_PIPE_REQUESTS_KEY,
150+
PipeSourceConstant.SOURCE_FORWARDING_PIPE_REQUESTS_KEY),
151+
PipeSourceConstant.EXTRACTOR_FORWARDING_PIPE_REQUESTS_DEFAULT_VALUE);
152+
if (!forwardingPipeRequests) {
153+
throw new PipeParameterNotValidException(
154+
String.format(
155+
"The parameter %s cannot be set to false.",
156+
PipeSourceConstant.SOURCE_FORWARDING_PIPE_REQUESTS_KEY));
157+
}
158+
143159
final boolean isTreeDialect =
144160
validator
145161
.getParameters()
@@ -266,32 +282,6 @@ public void validate(final PipeParameterValidator validator) throws Exception {
266282
Arrays.asList(EXTRACTOR_REALTIME_ENABLE_KEY, SOURCE_REALTIME_ENABLE_KEY),
267283
EXTRACTOR_REALTIME_ENABLE_DEFAULT_VALUE));
268284

269-
// Validate source.realtime.mode
270-
if (validator
271-
.getParameters()
272-
.getBooleanOrDefault(
273-
Arrays.asList(EXTRACTOR_REALTIME_ENABLE_KEY, SOURCE_REALTIME_ENABLE_KEY),
274-
EXTRACTOR_REALTIME_ENABLE_DEFAULT_VALUE)
275-
|| validator
276-
.getParameters()
277-
.hasAnyAttributes(
278-
SOURCE_START_TIME_KEY,
279-
EXTRACTOR_START_TIME_KEY,
280-
SOURCE_END_TIME_KEY,
281-
EXTRACTOR_END_TIME_KEY)) {
282-
validator.validateAttributeValueRange(
283-
validator.getParameters().hasAttribute(EXTRACTOR_REALTIME_MODE_KEY)
284-
? EXTRACTOR_REALTIME_MODE_KEY
285-
: SOURCE_REALTIME_MODE_KEY,
286-
true,
287-
EXTRACTOR_REALTIME_MODE_FILE_VALUE,
288-
EXTRACTOR_REALTIME_MODE_HYBRID_VALUE,
289-
EXTRACTOR_REALTIME_MODE_LOG_VALUE,
290-
EXTRACTOR_REALTIME_MODE_FORCED_LOG_VALUE,
291-
EXTRACTOR_REALTIME_MODE_STREAM_MODE_VALUE,
292-
EXTRACTOR_REALTIME_MODE_BATCH_MODE_VALUE);
293-
}
294-
295285
checkInvalidParameters(validator);
296286

297287
constructHistoricalExtractor();
@@ -454,6 +444,13 @@ private void constructRealtimeExtractor(final PipeParameters parameters) {
454444
return;
455445
}
456446

447+
if (!(pipeName != null
448+
&& (pipeName.startsWith(PipeStaticMeta.SUBSCRIPTION_PIPE_PREFIX)
449+
|| pipeName.startsWith(PipeStaticMeta.CONSENSUS_PIPE_PREFIX)))) {
450+
realtimeExtractor = new PipeRealtimeDataRegionTsFileSource();
451+
return;
452+
}
453+
457454
// Use hybrid mode by default
458455
if (!parameters.hasAnyAttributes(EXTRACTOR_MODE_STREAMING_KEY, SOURCE_MODE_STREAMING_KEY)
459456
&& !parameters.hasAnyAttributes(EXTRACTOR_REALTIME_MODE_KEY, SOURCE_REALTIME_MODE_KEY)) {

0 commit comments

Comments
 (0)