Skip to content

Commit 7f4ead9

Browse files
Fix the earliest last modified age of translog stats (elastic#64753)
Currently translog's `earliest_last_modified_age` field is always 0 in `_nodes/stats` response.
1 parent 1a8ce87 commit 7f4ead9

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

server/src/main/java/org/elasticsearch/index/translog/TranslogStats.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,12 @@ public void add(TranslogStats translogStats) {
8080
this.translogSizeInBytes += translogStats.translogSizeInBytes;
8181
this.uncommittedOperations += translogStats.uncommittedOperations;
8282
this.uncommittedSizeInBytes += translogStats.uncommittedSizeInBytes;
83-
this.earliestLastModifiedAge =
84-
Math.min(this.earliestLastModifiedAge, translogStats.earliestLastModifiedAge);
83+
if (this.earliestLastModifiedAge == 0) {
84+
this.earliestLastModifiedAge = translogStats.earliestLastModifiedAge;
85+
} else {
86+
this.earliestLastModifiedAge =
87+
Math.min(this.earliestLastModifiedAge, translogStats.earliestLastModifiedAge);
88+
}
8589
}
8690

8791
public long getTranslogSizeInBytes() {

server/src/test/java/org/elasticsearch/index/translog/TranslogTests.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -516,14 +516,18 @@ public void testUncommittedOperations() throws Exception {
516516

517517
public void testTotalTests() {
518518
final TranslogStats total =
519-
new TranslogStats(0, 0, 0, 0, 1);
519+
new TranslogStats();
520520
final int n = randomIntBetween(0, 16);
521521
final List<TranslogStats> statsList = new ArrayList<>(n);
522+
long earliestLastModifiedAge = Long.MAX_VALUE;
522523
for (int i = 0; i < n; i++) {
523524
final TranslogStats stats = new TranslogStats(randomIntBetween(1, 4096), randomIntBetween(1, 1 << 20),
524525
randomIntBetween(1, 1 << 20), randomIntBetween(1, 4096), randomIntBetween(1, 1 << 20));
525526
statsList.add(stats);
526527
total.add(stats);
528+
if (earliestLastModifiedAge > stats.getEarliestLastModifiedAge()) {
529+
earliestLastModifiedAge = stats.getEarliestLastModifiedAge();
530+
}
527531
}
528532

529533
assertThat(
@@ -540,7 +544,7 @@ public void testTotalTests() {
540544
equalTo(statsList.stream().mapToLong(TranslogStats::getUncommittedSizeInBytes).sum()));
541545
assertThat(
542546
total.getEarliestLastModifiedAge(),
543-
equalTo(1L));
547+
equalTo(earliestLastModifiedAge));
544548
}
545549

546550
public void testNegativeNumberOfOperations() {

0 commit comments

Comments
 (0)