Skip to content

Commit 502f54a

Browse files
authored
Pipe: Added the CreateMultiTimeSeries with merge logic and disabled timeSeries existence check at SchemaExecutionVisitor for plans transferred by pipe (apache#14317)
1 parent 06d9f3b commit 502f54a

File tree

2 files changed

+187
-183
lines changed

2 files changed

+187
-183
lines changed

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/consensus/statemachine/schemaregion/SchemaExecutionVisitor.java

Lines changed: 58 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,11 @@ public TSStatus visitCreateMultiTimeSeries(
148148
// todo implement batch creation of one device in SchemaRegion
149149
for (int i = 0; i < size; i++) {
150150
try {
151-
schemaRegion.createTimeSeries(
152-
transformToCreateTimeSeriesPlan(devicePath, measurementGroup, i), -1);
153-
} catch (MetadataException e) {
151+
final ICreateTimeSeriesPlan createTimeSeriesPlan =
152+
transformToCreateTimeSeriesPlan(devicePath, measurementGroup, i);
153+
((CreateTimeSeriesPlanImpl) createTimeSeriesPlan).setWithMerge(node.isGeneratedByPipe());
154+
schemaRegion.createTimeSeries(createTimeSeriesPlan, -1);
155+
} catch (final MetadataException e) {
154156
logger.error("{}: MetaData error: ", IoTDBConstant.GLOBAL_DB_NAME, e);
155157
failingStatus.add(RpcUtils.getStatus(e.getErrorCode(), e.getMessage()));
156158
}
@@ -196,15 +198,15 @@ public TSStatus visitInternalCreateTimeSeries(
196198
schemaRegion,
197199
alreadyExistingTimeSeries,
198200
failingStatus,
199-
false);
201+
node.isGeneratedByPipe());
200202
} else {
201203
executeInternalCreateTimeSeries(
202204
devicePath,
203205
measurementGroup,
204206
schemaRegion,
205207
alreadyExistingTimeSeries,
206208
failingStatus,
207-
false);
209+
node.isGeneratedByPipe());
208210
}
209211

210212
if (!failingStatus.isEmpty()) {
@@ -389,7 +391,8 @@ private void executeInternalCreateAlignedTimeSeries(
389391
}
390392

391393
@Override
392-
public TSStatus visitAlterTimeSeries(AlterTimeSeriesNode node, ISchemaRegion schemaRegion) {
394+
public TSStatus visitAlterTimeSeries(
395+
final AlterTimeSeriesNode node, final ISchemaRegion schemaRegion) {
393396
try {
394397
switch (node.getAlterType()) {
395398
case RENAME:
@@ -425,29 +428,32 @@ public TSStatus visitAlterTimeSeries(AlterTimeSeriesNode node, ISchemaRegion sch
425428
}
426429

427430
@Override
428-
public TSStatus visitActivateTemplate(ActivateTemplateNode node, ISchemaRegion schemaRegion) {
431+
public TSStatus visitActivateTemplate(
432+
final ActivateTemplateNode node, final ISchemaRegion schemaRegion) {
429433
try {
430-
Template template = ClusterTemplateManager.getInstance().getTemplate(node.getTemplateId());
434+
final Template template =
435+
ClusterTemplateManager.getInstance().getTemplate(node.getTemplateId());
431436
schemaRegion.activateSchemaTemplate(node, template);
432437
return RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS);
433-
} catch (MetadataException e) {
438+
} catch (final MetadataException e) {
434439
logger.error(e.getMessage(), e);
435440
return RpcUtils.getStatus(e.getErrorCode(), e.getMessage());
436441
}
437442
}
438443

439444
@Override
440445
public TSStatus visitBatchActivateTemplate(
441-
BatchActivateTemplateNode node, ISchemaRegion schemaRegion) {
442-
for (Map.Entry<PartialPath, Pair<Integer, Integer>> entry :
446+
final BatchActivateTemplateNode node, final ISchemaRegion schemaRegion) {
447+
for (final Map.Entry<PartialPath, Pair<Integer, Integer>> entry :
443448
node.getTemplateActivationMap().entrySet()) {
444-
Template template = ClusterTemplateManager.getInstance().getTemplate(entry.getValue().left);
449+
final Template template =
450+
ClusterTemplateManager.getInstance().getTemplate(entry.getValue().left);
445451
try {
446452
schemaRegion.activateSchemaTemplate(
447453
SchemaRegionWritePlanFactory.getActivateTemplateInClusterPlan(
448454
entry.getKey(), entry.getValue().right, entry.getValue().left),
449455
template);
450-
} catch (MetadataException e) {
456+
} catch (final MetadataException e) {
451457
logger.error(e.getMessage(), e);
452458
return RpcUtils.getStatus(e.getErrorCode(), e.getMessage());
453459
}
@@ -457,21 +463,22 @@ public TSStatus visitBatchActivateTemplate(
457463

458464
@Override
459465
public TSStatus visitInternalBatchActivateTemplate(
460-
InternalBatchActivateTemplateNode node, ISchemaRegion schemaRegion) {
461-
for (Map.Entry<PartialPath, Pair<Integer, Integer>> entry :
466+
final InternalBatchActivateTemplateNode node, final ISchemaRegion schemaRegion) {
467+
for (final Map.Entry<PartialPath, Pair<Integer, Integer>> entry :
462468
node.getTemplateActivationMap().entrySet()) {
463-
Template template = ClusterTemplateManager.getInstance().getTemplate(entry.getValue().left);
469+
final Template template =
470+
ClusterTemplateManager.getInstance().getTemplate(entry.getValue().left);
464471
try {
465472
schemaRegion.activateSchemaTemplate(
466473
SchemaRegionWritePlanFactory.getActivateTemplateInClusterPlan(
467474
entry.getKey(), entry.getValue().right, entry.getValue().left),
468475
template);
469-
} catch (TemplateIsInUseException e) {
476+
} catch (final TemplateIsInUseException e) {
470477
logger.info(
471478
String.format(
472479
"Device Template has already been activated on path %s, there's no need to activate again.",
473480
entry.getKey()));
474-
} catch (MetadataException e) {
481+
} catch (final MetadataException e) {
475482
logger.error(e.getMessage(), e);
476483
return RpcUtils.getStatus(e.getErrorCode(), e.getMessage());
477484
}
@@ -498,53 +505,56 @@ public TSStatus visitConstructSchemaBlackList(
498505

499506
@Override
500507
public TSStatus visitRollbackSchemaBlackList(
501-
RollbackSchemaBlackListNode node, ISchemaRegion schemaRegion) {
508+
final RollbackSchemaBlackListNode node, final ISchemaRegion schemaRegion) {
502509
try {
503510
schemaRegion.rollbackSchemaBlackList(node.getPatternTree());
504511
return RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS);
505-
} catch (MetadataException e) {
512+
} catch (final MetadataException e) {
506513
logger.error(e.getMessage(), e);
507514
return RpcUtils.getStatus(e.getErrorCode(), e.getMessage());
508515
}
509516
}
510517

511518
@Override
512-
public TSStatus visitDeleteTimeseries(DeleteTimeSeriesNode node, ISchemaRegion schemaRegion) {
519+
public TSStatus visitDeleteTimeseries(
520+
final DeleteTimeSeriesNode node, final ISchemaRegion schemaRegion) {
513521
try {
514522
schemaRegion.deleteTimeseriesInBlackList(node.getPatternTree());
515523
return RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS);
516-
} catch (MetadataException e) {
524+
} catch (final MetadataException e) {
517525
logger.error(e.getMessage(), e);
518526
return RpcUtils.getStatus(e.getErrorCode(), e.getMessage());
519527
}
520528
}
521529

522530
@Override
523531
public TSStatus visitPreDeactivateTemplate(
524-
PreDeactivateTemplateNode node, ISchemaRegion schemaRegion) {
532+
final PreDeactivateTemplateNode node, final ISchemaRegion schemaRegion) {
525533
try {
526-
long preDeactivateNum = schemaRegion.constructSchemaBlackListWithTemplate(node);
527-
return RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS, String.valueOf(preDeactivateNum));
528-
} catch (MetadataException e) {
534+
return RpcUtils.getStatus(
535+
TSStatusCode.SUCCESS_STATUS,
536+
String.valueOf(schemaRegion.constructSchemaBlackListWithTemplate(node)));
537+
} catch (final MetadataException e) {
529538
logger.error(e.getMessage(), e);
530539
return RpcUtils.getStatus(e.getErrorCode(), e.getMessage());
531540
}
532541
}
533542

534543
@Override
535544
public TSStatus visitRollbackPreDeactivateTemplate(
536-
RollbackPreDeactivateTemplateNode node, ISchemaRegion schemaRegion) {
545+
final RollbackPreDeactivateTemplateNode node, final ISchemaRegion schemaRegion) {
537546
try {
538547
schemaRegion.rollbackSchemaBlackListWithTemplate(node);
539548
return RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS);
540-
} catch (MetadataException e) {
549+
} catch (final MetadataException e) {
541550
logger.error(e.getMessage(), e);
542551
return RpcUtils.getStatus(e.getErrorCode(), e.getMessage());
543552
}
544553
}
545554

546555
@Override
547-
public TSStatus visitDeactivateTemplate(DeactivateTemplateNode node, ISchemaRegion schemaRegion) {
556+
public TSStatus visitDeactivateTemplate(
557+
final DeactivateTemplateNode node, final ISchemaRegion schemaRegion) {
548558
try {
549559
schemaRegion.deactivateTemplateInBlackList(node);
550560
return RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS);
@@ -555,15 +565,17 @@ public TSStatus visitDeactivateTemplate(DeactivateTemplateNode node, ISchemaRegi
555565
}
556566

557567
@Override
558-
public TSStatus visitCreateLogicalView(CreateLogicalViewNode node, ISchemaRegion schemaRegion) {
559-
Map<PartialPath, ViewExpression> viewPathToSourceMap = node.getViewPathToSourceExpressionMap();
560-
List<TSStatus> failingStatus = new ArrayList<>();
561-
for (Map.Entry<PartialPath, ViewExpression> entry : viewPathToSourceMap.entrySet()) {
568+
public TSStatus visitCreateLogicalView(
569+
final CreateLogicalViewNode node, final ISchemaRegion schemaRegion) {
570+
final Map<PartialPath, ViewExpression> viewPathToSourceMap =
571+
node.getViewPathToSourceExpressionMap();
572+
final List<TSStatus> failingStatus = new ArrayList<>();
573+
for (final Map.Entry<PartialPath, ViewExpression> entry : viewPathToSourceMap.entrySet()) {
562574
try {
563575
schemaRegion.createLogicalView(
564576
SchemaRegionWritePlanFactory.getCreateLogicalViewPlan(
565577
entry.getKey(), entry.getValue()));
566-
} catch (MetadataException e) {
578+
} catch (final MetadataException e) {
567579
logger.error("{}: MetaData error: ", IoTDBConstant.GLOBAL_DB_NAME, e);
568580
failingStatus.add(RpcUtils.getStatus(e.getErrorCode(), e.getMessage()));
569581
}
@@ -575,14 +587,15 @@ public TSStatus visitCreateLogicalView(CreateLogicalViewNode node, ISchemaRegion
575587
}
576588

577589
@Override
578-
public TSStatus visitAlterLogicalView(AlterLogicalViewNode node, ISchemaRegion schemaRegion) {
579-
Map<PartialPath, ViewExpression> viewPathToSourceMap = node.getViewPathToSourceMap();
580-
List<TSStatus> failingStatus = new ArrayList<>();
581-
for (Map.Entry<PartialPath, ViewExpression> entry : viewPathToSourceMap.entrySet()) {
590+
public TSStatus visitAlterLogicalView(
591+
final AlterLogicalViewNode node, final ISchemaRegion schemaRegion) {
592+
final Map<PartialPath, ViewExpression> viewPathToSourceMap = node.getViewPathToSourceMap();
593+
final List<TSStatus> failingStatus = new ArrayList<>();
594+
for (final Map.Entry<PartialPath, ViewExpression> entry : viewPathToSourceMap.entrySet()) {
582595
try {
583596
schemaRegion.alterLogicalView(
584597
SchemaRegionWritePlanFactory.getAlterLogicalViewPlan(entry.getKey(), entry.getValue()));
585-
} catch (MetadataException e) {
598+
} catch (final MetadataException e) {
586599
logger.warn("{}: MetaData error: ", IoTDBConstant.GLOBAL_DB_NAME, e);
587600
failingStatus.add(RpcUtils.getStatus(e.getErrorCode(), e.getMessage()));
588601
}
@@ -595,10 +608,11 @@ public TSStatus visitAlterLogicalView(AlterLogicalViewNode node, ISchemaRegion s
595608

596609
@Override
597610
public TSStatus visitConstructLogicalViewBlackList(
598-
ConstructLogicalViewBlackListNode node, ISchemaRegion schemaRegion) {
611+
final ConstructLogicalViewBlackListNode node, final ISchemaRegion schemaRegion) {
599612
try {
600-
long preDeletedNum = schemaRegion.constructLogicalViewBlackList(node.getPatternTree());
601-
return RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS, String.valueOf(preDeletedNum));
613+
return RpcUtils.getStatus(
614+
TSStatusCode.SUCCESS_STATUS,
615+
String.valueOf(schemaRegion.constructLogicalViewBlackList(node.getPatternTree())));
602616
} catch (MetadataException e) {
603617
logger.error(e.getMessage(), e);
604618
return RpcUtils.getStatus(e.getErrorCode(), e.getMessage());
@@ -607,11 +621,11 @@ public TSStatus visitConstructLogicalViewBlackList(
607621

608622
@Override
609623
public TSStatus visitRollbackLogicalViewBlackList(
610-
RollbackLogicalViewBlackListNode node, ISchemaRegion schemaRegion) {
624+
final RollbackLogicalViewBlackListNode node, final ISchemaRegion schemaRegion) {
611625
try {
612626
schemaRegion.rollbackLogicalViewBlackList(node.getPatternTree());
613627
return RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS);
614-
} catch (MetadataException e) {
628+
} catch (final MetadataException e) {
615629
logger.error(e.getMessage(), e);
616630
return RpcUtils.getStatus(e.getErrorCode(), e.getMessage());
617631
}

0 commit comments

Comments
 (0)