Skip to content

Commit b90151a

Browse files
guojn1githubgxll
authored andcommitted
[fix][dingo-executor] GC deletes the region using the DDL end time
1 parent 3f4fd0f commit b90151a

File tree

3 files changed

+17
-13
lines changed

3 files changed

+17
-13
lines changed

dingo-executor/src/main/java/io/dingodb/server/executor/ddl/DdlRollBack.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import io.dingodb.sdk.service.entity.common.SchemaState;
3131
import io.dingodb.sdk.service.entity.meta.TableDefinitionWithId;
3232
import io.dingodb.store.proxy.mapper.Mapper;
33+
import io.dingodb.tso.TsoService;
3334
import lombok.extern.slf4j.Slf4j;
3435

3536
import static io.dingodb.common.mysql.error.ErrorCode.ErrCancelledDDLJob;
@@ -118,7 +119,7 @@ public static String rollingbackAddIndex(DdlJob job) {
118119
return "add index error";
119120
}
120121
MetaService.root().dropIndex(
121-
table.getTableId(), Mapper.MAPPER.idFrom(indexWithId.getTableId()), job.getId(), job.getRealStartTs()
122+
table.getTableId(), Mapper.MAPPER.idFrom(indexWithId.getTableId()), job.getId(), TsoService.getDefault().tso()
122123
);
123124
return null;
124125
}

dingo-executor/src/main/java/io/dingodb/server/executor/ddl/DdlWorker.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -823,7 +823,7 @@ public static Pair<Long, String> onDropIndex(DdlContext dc, DdlJob job) {
823823
try {
824824
MetaService.root().dropIndex(
825825
table.getTableId(), Mapper.MAPPER.idFrom(indexWithId.getTableId()),
826-
job.getId(), job.getRealStartTs()
826+
job.getId(), TsoService.getDefault().tso()
827827
);
828828
} catch (Exception e) {
829829
LogUtils.error(log, "drop index error", e);
@@ -916,7 +916,7 @@ public Pair<Long, String> onDropColumn(DdlContext dc, DdlJob job) {
916916
} catch (Exception e) {
917917
job.setState(JobState.jobStateCancelled);
918918
MetaService.root().dropRegionByTable(
919-
Mapper.MAPPER.idFrom(replicaTableId), job.getId(), job.getRealStartTs()
919+
Mapper.MAPPER.idFrom(replicaTableId), job.getId(), TsoService.getDefault().tso()
920920
);
921921
InfoSchemaService.root().dropIndex(tableId.seq, replicaTableId.getEntityId());
922922
LogUtils.error(log, e.getMessage(), e);
@@ -932,7 +932,7 @@ public Pair<Long, String> onDropColumn(DdlContext dc, DdlJob job) {
932932
// to remove replica table
933933
InfoSchemaService.root().dropIndex(tableId.seq, replicaTableId.getEntityId());
934934
// remove old region
935-
MetaService.root().dropRegionByTable(tableId, job.getId(), job.getRealStartTs());
935+
MetaService.root().dropRegionByTable(tableId, job.getId(), TsoService.getDefault().tso());
936936
} catch (Exception e) {
937937
LogUtils.error(log, "drop replicaTable error", e);
938938
}
@@ -943,7 +943,7 @@ public Pair<Long, String> onDropColumn(DdlContext dc, DdlJob job) {
943943
try {
944944
markDelIndices.forEach(index -> {
945945
MetaService.root().dropRegionByTable(
946-
Mapper.MAPPER.idFrom(index.getTableId()), job.getId(), job.getRealStartTs()
946+
Mapper.MAPPER.idFrom(index.getTableId()), job.getId(), TsoService.getDefault().tso()
947947
);
948948
InfoSchemaService.root().dropIndex(tableId.seq, index.getTableId().getEntityId());
949949
});
@@ -1067,7 +1067,7 @@ public Pair<Long, String> onAddColumn(DdlContext dc, DdlJob job) {
10671067
} catch (Exception e) {
10681068
LogUtils.error(log, e.getMessage(), e);
10691069
MetaService.root().dropRegionByTable(
1070-
Mapper.MAPPER.idFrom(replicaTableId), job.getId(), job.getRealStartTs()
1070+
Mapper.MAPPER.idFrom(replicaTableId), job.getId(), TsoService.getDefault().tso()
10711071
);
10721072
InfoSchemaService.root().dropIndex(tableId.seq, replicaTableId.getEntityId());
10731073
job.setState(JobState.jobStateCancelled);
@@ -1091,7 +1091,7 @@ public Pair<Long, String> onAddColumn(DdlContext dc, DdlJob job) {
10911091
// to remove replica table
10921092
InfoSchemaService.root().dropIndex(tableId.seq, replicaTableId.getEntityId());
10931093
// remove old region
1094-
MetaService.root().dropRegionByTable(tableId, job.getId(), job.getRealStartTs());
1094+
MetaService.root().dropRegionByTable(tableId, job.getId(), TsoService.getDefault().tso());
10951095
} catch (Exception e) {
10961096
LogUtils.error(log, "drop replicaTable error", e);
10971097
}
@@ -1905,7 +1905,7 @@ public Pair<Long, String> doModifyColumnTypeWithData(
19051905
// to remove origin replica table definition
19061906
InfoSchemaService.root().dropIndex(tableId.seq, replicaTableId.getEntityId());
19071907
// remove old region
1908-
MetaService.root().dropRegionByTable(tableId, job.getId(), job.getRealStartTs(), false);
1908+
MetaService.root().dropRegionByTable(tableId, job.getId(), TsoService.getDefault().tso(), false);
19091909
} catch (Exception e) {
19101910
LogUtils.error(log, "drop replicaTable error", e);
19111911
}
@@ -1932,7 +1932,7 @@ public Pair<Long, String> doModifyColumnTypeWithData(
19321932
private static void cancelledReplicate(DdlJob job, DingoCommonId replicaTableId, CommonId tableId) {
19331933
List<Object> indexWithIdList;
19341934
MetaService.root().dropRegionByTable(
1935-
Mapper.MAPPER.idFrom(replicaTableId), job.getId(), job.getRealStartTs(), false, true
1935+
Mapper.MAPPER.idFrom(replicaTableId), job.getId(), TsoService.getDefault().tso(), false, true
19361936
);
19371937
InfoSchemaService.root().dropIndex(tableId.seq, replicaTableId.getEntityId());
19381938
// drop index replica definition and region
@@ -1942,7 +1942,8 @@ private static void cancelledReplicate(DdlJob job, DingoCommonId replicaTableId,
19421942
indexWithIdList.forEach(indexObj -> {
19431943
TableDefinitionWithId indexWithId = (TableDefinitionWithId) indexObj;
19441944
MetaService.root().dropRegionByTable(
1945-
Mapper.MAPPER.idFrom(indexWithId.getTableId()), job.getId(), job.getRealStartTs(), false,true
1945+
Mapper.MAPPER.idFrom(indexWithId.getTableId()), job.getId(),
1946+
TsoService.getDefault().tso(), false,true
19461947
);
19471948
InfoSchemaService.root().dropIndex(tableId.seq, indexWithId.getTableId().getEntityId());
19481949
});
@@ -2077,7 +2078,7 @@ public DingoErr doModifyColumnIndex(
20772078
try {
20782079
// remove old region
20792080
MetaService.root().dropRegionByTable(
2080-
MapperImpl.MAPPER.idFrom(originIndexId), job.getId(), job.getRealStartTs(), false
2081+
MapperImpl.MAPPER.idFrom(originIndexId), job.getId(), TsoService.getDefault().tso(), false
20812082
);
20822083
// to remove origin definition
20832084
InfoSchemaService.root().dropIndex(tableId.seq, originIndexId.getEntityId());
@@ -2429,7 +2430,8 @@ public Pair<Long, String> onTruncatePart(DdlContext dc, DdlJob job) {
24292430
List<RangeDistribution> regionList = ranges.values().stream()
24302431
.filter(region -> region.getId().domain == matchPart.getId().getEntityId())
24312432
.collect(Collectors.toList());
2432-
MetaService.root().deleteRegion(tableId, job.getId(), job.getRealStartTs(), false, regionList);
2433+
MetaService.root().deleteRegion(tableId, job.getId(),
2434+
TsoService.getDefault().tso(), false, regionList);
24332435
long newPartId = MetaService.root().generatePartId();
24342436
matchPart.getId().setEntityId(newPartId);
24352437
byte[] originStartKey = matchPart.getRange().getStartKey();
@@ -2447,7 +2449,7 @@ public Pair<Long, String> onTruncatePart(DdlContext dc, DdlJob job) {
24472449
TableDefinitionWithId indexWithId = (TableDefinitionWithId) obj;
24482450
MetaService.root().dropIndex(
24492451
tableId, Mapper.MAPPER.idFrom(indexWithId.getTableId()),
2450-
job.getId(), job.getRealStartTs()
2452+
job.getId(), TsoService.getDefault().tso()
24512453
);
24522454
});
24532455

dingo-store-proxy/src/main/java/io/dingodb/store/proxy/common/Gc.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -812,6 +812,7 @@ static boolean dropTableMeta(String eleId, long jobId, Session session, String e
812812
List<Object[]> res = session.executeQuery(sql);
813813
if (res.isEmpty()) {
814814
LogUtils.error(log, "drop table meta get job type empty, jobId:{}", jobId);
815+
return true;
815816
} else {
816817
if (res.get(0).length >= 1) {
817818
int type = (int) res.get(0)[0];

0 commit comments

Comments
 (0)