Skip to content

Commit 4b2e385

Browse files
committed
Don’t check local_checkpoint in commit
1 parent b18eb06 commit 4b2e385

File tree

3 files changed

+10
-13
lines changed

3 files changed

+10
-13
lines changed

server/src/main/java/org/elasticsearch/index/engine/CombinedDeletionPolicy.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,7 @@ private void updateRetentionPolicy() throws IOException {
105105
translogDeletionPolicy.setTranslogGenerationOfLastCommit(lastGen);
106106
translogDeletionPolicy.setMinTranslogGenerationForRecovery(minRequiredGen);
107107

108-
if (safeCommit.getUserData().containsKey(SequenceNumbers.LOCAL_CHECKPOINT_KEY)) {
109-
softDeletesPolicy.setCheckpointOfSafeCommit(Long.parseLong(safeCommit.getUserData().get(SequenceNumbers.LOCAL_CHECKPOINT_KEY)));
110-
}
108+
softDeletesPolicy.setCheckpointOfSafeCommit(Long.parseLong(safeCommit.getUserData().get(SequenceNumbers.LOCAL_CHECKPOINT_KEY)));
111109
}
112110

113111
/**

server/src/main/java/org/elasticsearch/index/engine/SoftDeletesPolicy.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
*/
3535
final class SoftDeletesPolicy {
3636
private final LongSupplier globalCheckpointSupplier;
37-
private int retentionNumLocks = 0;
37+
private int retentionLockCount;
3838
private long checkpointOfSafeCommit;
3939
private volatile long minRequiredSeqNoForRecovery;
4040
private volatile long retentionOperations;
@@ -44,6 +44,7 @@ final class SoftDeletesPolicy {
4444
this.retentionOperations = retentionOperations;
4545
this.checkpointOfSafeCommit = SequenceNumbers.NO_OPS_PERFORMED;
4646
this.minRequiredSeqNoForRecovery = checkpointOfSafeCommit + 1;
47+
this.retentionLockCount = 0;
4748
}
4849

4950
/**
@@ -69,7 +70,7 @@ synchronized void setCheckpointOfSafeCommit(long newCheckpoint) {
6970

7071
private void updateMinRequiredSeqNoForRecovery() {
7172
assert Thread.holdsLock(this) : Thread.currentThread().getName();
72-
if (retentionNumLocks == 0) {
73+
if (retentionLockCount == 0) {
7374
// Need to keep all operations after the local checkpoint of the safe commit for recovery purpose.
7475
this.minRequiredSeqNoForRecovery = checkpointOfSafeCommit + 1;
7576
}
@@ -81,8 +82,8 @@ private void updateMinRequiredSeqNoForRecovery() {
8182
* This is a analogy to the translog's retention lock; see {@link Translog#acquireRetentionLock()}
8283
*/
8384
synchronized Releasable acquireRetentionLock() {
84-
retentionNumLocks++;
85-
assert retentionNumLocks > 0 : "Invalid number of retention locks [" + retentionNumLocks + "]";
85+
retentionLockCount++;
86+
assert retentionLockCount > 0 : "Invalid number of retention locks [" + retentionLockCount + "]";
8687
final AtomicBoolean released = new AtomicBoolean();
8788
return () -> {
8889
if (released.compareAndSet(false, true)) {
@@ -92,8 +93,8 @@ synchronized Releasable acquireRetentionLock() {
9293
}
9394

9495
private synchronized void releaseRetentionLock() {
95-
retentionNumLocks--;
96-
assert retentionNumLocks >= 0 : "Invalid number of retention locks [" + retentionNumLocks + "]";
96+
retentionLockCount--;
97+
assert retentionLockCount >= 0 : "Invalid number of retention locks [" + retentionLockCount + "]";
9798
updateMinRequiredSeqNoForRecovery();
9899
}
99100

server/src/test/java/org/elasticsearch/index/engine/CombinedDeletionPolicyTests.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,10 +185,8 @@ public void testLegacyIndex() throws Exception {
185185

186186
long legacyTranslogGen = randomNonNegativeLong();
187187
IndexCommit legacyCommit = mockLegacyIndexCommit(translogUUID, legacyTranslogGen);
188-
indexPolicy.onCommit(singletonList(legacyCommit));
189-
verify(legacyCommit, never()).delete();
190-
assertThat(translogPolicy.getMinTranslogGenerationForRecovery(), equalTo(legacyTranslogGen));
191-
assertThat(translogPolicy.getTranslogGenerationOfLastCommit(), equalTo(legacyTranslogGen));
188+
assertThat(CombinedDeletionPolicy.findSafeCommitPoint(singletonList(legacyCommit), globalCheckpoint.get()),
189+
equalTo(legacyCommit));
192190

193191
long safeTranslogGen = randomLongBetween(legacyTranslogGen, Long.MAX_VALUE);
194192
long maxSeqNo = randomLongBetween(1, Long.MAX_VALUE);

0 commit comments

Comments
 (0)