From 993182e426e3c73c287386abed7bb1ce0af2adf9 Mon Sep 17 00:00:00 2001 From: Nhat Nguyen Date: Thu, 7 Mar 2019 12:07:38 -0500 Subject: [PATCH] Combine overriddenOps and skippedOps in translog (#39771) These two stats are not important enough to be distinguishable. This change combines them into a single stat. Closes #33317 --- .../index/translog/MultiSnapshot.java | 11 +---------- .../elasticsearch/index/translog/Translog.java | 15 +-------------- .../replication/IndexLevelReplicationTests.java | 1 - .../index/translog/TranslogTests.java | 2 -- 4 files changed, 2 insertions(+), 27 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/index/translog/MultiSnapshot.java b/server/src/main/java/org/elasticsearch/index/translog/MultiSnapshot.java index b5a17534903..e9d593b728e 100644 --- a/server/src/main/java/org/elasticsearch/index/translog/MultiSnapshot.java +++ b/server/src/main/java/org/elasticsearch/index/translog/MultiSnapshot.java @@ -58,16 +58,7 @@ final class MultiSnapshot implements Translog.Snapshot { @Override public int skippedOperations() { - int skippedOperations = overriddenOperations; - for (TranslogSnapshot translog : translogs) { - skippedOperations += translog.skippedOperations(); - } - return skippedOperations; - } - - @Override - public int overriddenOperations() { - return overriddenOperations; + return Arrays.stream(translogs).mapToInt(TranslogSnapshot::skippedOperations).sum() + overriddenOperations; } @Override diff --git a/server/src/main/java/org/elasticsearch/index/translog/Translog.java b/server/src/main/java/org/elasticsearch/index/translog/Translog.java index d8acba635f8..63d21ffea15 100644 --- a/server/src/main/java/org/elasticsearch/index/translog/Translog.java +++ b/server/src/main/java/org/elasticsearch/index/translog/Translog.java @@ -936,20 +936,12 @@ public class Translog extends AbstractIndexShardComponent implements IndexShardC /** * The number of operations have been skipped (overridden or trimmed) in the snapshot so far. + * Unlike {@link #totalOperations()}, this value is updated each time after {@link #next()}) is called. */ default int skippedOperations() { return 0; } - /** - * The number of operations have been overridden (eg. superseded) in the snapshot so far. - * If two operations have the same sequence number, the operation with a lower term will be overridden by the operation - * with a higher term. Unlike {@link #totalOperations()}, this value is updated each time after {@link #next()}) is called. - */ - default int overriddenOperations() { - return 0; - } - /** * Returns the next operation in the snapshot or null if we reached the end. */ @@ -985,11 +977,6 @@ public class Translog extends AbstractIndexShardComponent implements IndexShardC return filteredOpsCount + delegate.skippedOperations(); } - @Override - public int overriddenOperations() { - return delegate.overriddenOperations(); - } - @Override public Operation next() throws IOException { Translog.Operation op; diff --git a/server/src/test/java/org/elasticsearch/index/replication/IndexLevelReplicationTests.java b/server/src/test/java/org/elasticsearch/index/replication/IndexLevelReplicationTests.java index d24124a1048..1af143c1c98 100644 --- a/server/src/test/java/org/elasticsearch/index/replication/IndexLevelReplicationTests.java +++ b/server/src/test/java/org/elasticsearch/index/replication/IndexLevelReplicationTests.java @@ -584,7 +584,6 @@ public class IndexLevelReplicationTests extends ESIndexLevelReplicationTestCase assertThat(op2.seqNo(), equalTo(op1.seqNo())); assertThat(op2.primaryTerm(), greaterThan(op1.primaryTerm())); assertThat("Remaining of snapshot should contain init operations", snapshot, containsOperationsInAnyOrder(initOperations)); - assertThat(snapshot.overriddenOperations(), equalTo(0)); assertThat(snapshot.skippedOperations(), equalTo(1)); } diff --git a/server/src/test/java/org/elasticsearch/index/translog/TranslogTests.java b/server/src/test/java/org/elasticsearch/index/translog/TranslogTests.java index 3eddeea2f2a..dd477777e79 100644 --- a/server/src/test/java/org/elasticsearch/index/translog/TranslogTests.java +++ b/server/src/test/java/org/elasticsearch/index/translog/TranslogTests.java @@ -715,7 +715,6 @@ public class TranslogTests extends ESTestCase { Translog.Snapshot filter = new Translog.SeqNoFilterSnapshot(snapshot, between(200, 300), between(300, 400)); // out range assertThat(filter, SnapshotMatchers.size(0)); assertThat(filter.totalOperations(), equalTo(snapshot.totalOperations())); - assertThat(filter.overriddenOperations(), equalTo(snapshot.overriddenOperations())); assertThat(filter.skippedOperations(), equalTo(snapshot.totalOperations())); } try (Translog.Snapshot snapshot = translog.newSnapshot()) { @@ -726,7 +725,6 @@ public class TranslogTests extends ESTestCase { Translog.Snapshot filter = new Translog.SeqNoFilterSnapshot(snapshot, fromSeqNo, toSeqNo); assertThat(filter, SnapshotMatchers.containsOperationsInAnyOrder(selectedOps)); assertThat(filter.totalOperations(), equalTo(snapshot.totalOperations())); - assertThat(filter.overriddenOperations(), equalTo(snapshot.overriddenOperations())); assertThat(filter.skippedOperations(), equalTo(snapshot.skippedOperations() + operations.size() - selectedOps.size())); } }