Skip to content

Commit 0137c16

Browse files
howardhuanghuadnhatn
authored andcommitted
Fix the earliest last modified age of translog stats (#64753)
Currently translog's `earliest_last_modified_age` field is always 0 in `_nodes/stats` response.
1 parent 154c579 commit 0137c16

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
@@ -88,8 +88,12 @@ public void add(TranslogStats translogStats) {
8888
this.translogSizeInBytes += translogStats.translogSizeInBytes;
8989
this.uncommittedOperations += translogStats.uncommittedOperations;
9090
this.uncommittedSizeInBytes += translogStats.uncommittedSizeInBytes;
91-
this.earliestLastModifiedAge =
92-
Math.min(this.earliestLastModifiedAge, translogStats.earliestLastModifiedAge);
91+
if (this.earliestLastModifiedAge == 0) {
92+
this.earliestLastModifiedAge = translogStats.earliestLastModifiedAge;
93+
} else {
94+
this.earliestLastModifiedAge =
95+
Math.min(this.earliestLastModifiedAge, translogStats.earliestLastModifiedAge);
96+
}
9397
}
9498

9599
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
@@ -529,14 +529,18 @@ public void testUncommittedOperations() throws Exception {
529529

530530
public void testTotalTests() {
531531
final TranslogStats total =
532-
new TranslogStats(0, 0, 0, 0, 1);
532+
new TranslogStats();
533533
final int n = randomIntBetween(0, 16);
534534
final List<TranslogStats> statsList = new ArrayList<>(n);
535+
long earliestLastModifiedAge = Long.MAX_VALUE;
535536
for (int i = 0; i < n; i++) {
536537
final TranslogStats stats = new TranslogStats(randomIntBetween(1, 4096), randomIntBetween(1, 1 << 20),
537538
randomIntBetween(1, 1 << 20), randomIntBetween(1, 4096), randomIntBetween(1, 1 << 20));
538539
statsList.add(stats);
539540
total.add(stats);
541+
if (earliestLastModifiedAge > stats.getEarliestLastModifiedAge()) {
542+
earliestLastModifiedAge = stats.getEarliestLastModifiedAge();
543+
}
540544
}
541545

542546
assertThat(
@@ -553,7 +557,7 @@ public void testTotalTests() {
553557
equalTo(statsList.stream().mapToLong(TranslogStats::getUncommittedSizeInBytes).sum()));
554558
assertThat(
555559
total.getEarliestLastModifiedAge(),
556-
equalTo(1L));
560+
equalTo(earliestLastModifiedAge));
557561
}
558562

559563
public void testNegativeNumberOfOperations() {

0 commit comments

Comments
 (0)