Skip to content

Commit b87eb94

Browse files
guojn1rock-git
authored andcommitted
[fix][dingo-sdk] Add rebase/reset autoInc
1 parent 7b6f7a3 commit b87eb94

File tree

1 file changed

+26
-2
lines changed

1 file changed

+26
-2
lines changed

java/dingo-sdk/src/main/java/io/dingodb/sdk/service/meta/AutoIncrementService.java

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public long next(DingoCommonId tableId) {
102102
}
103103
}
104104

105-
private void updateIncrement(DingoCommonId tableId, long increment) {
105+
public void updateIncrement(DingoCommonId tableId, long increment) {
106106
Meta.UpdateAutoIncrementRequest request = Meta.UpdateAutoIncrementRequest.newBuilder()
107107
.setTableId(mapping(tableId))
108108
.setStartId(increment)
@@ -117,18 +117,42 @@ public void update(DingoCommonId tableId, long incrementId) {
117117
try {
118118
AutoIncrement autoIncrement = innerCache.computeIfAbsent(tableId,
119119
id -> new AutoIncrement(id, increment, offset, this::fetcher));
120+
if (autoIncrement.getLimit() == 0) {
121+
autoIncrement.inc();
122+
}
120123
if (incrementId < autoIncrement.getLimit() && incrementId >= autoIncrement.current()) {
121124
autoIncrement.inc(incrementId);
122125
} else {
123126
// update server startid
124127
autoIncrement.inc(incrementId);
125128
if (autoIncrement.getLimit() > 0 && incrementId > autoIncrement.getLimit()) {
126-
updateIncrement(tableId, incrementId);
129+
long maxId = current(tableId);
130+
if (incrementId > maxId) {
131+
updateIncrement(tableId, incrementId);
132+
}
127133
}
128134
}
129135
} finally {
130136
rwLock.writeLock().unlock();
131137
}
132138
}
133139

140+
public void reset(DingoCommonId tableId) {
141+
rwLock.writeLock().lock();
142+
try {
143+
innerCache.remove(tableId);
144+
} finally {
145+
rwLock.writeLock().unlock();
146+
}
147+
}
148+
149+
public void reset() {
150+
rwLock.writeLock().lock();
151+
try {
152+
innerCache.clear();
153+
} finally {
154+
rwLock.writeLock().unlock();
155+
}
156+
}
157+
134158
}

0 commit comments

Comments
 (0)