Skip to content

Commit a4e3c68

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 2eee124 commit a4e3c68

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
@@ -73,8 +73,12 @@ public void add(TranslogStats translogStats) {
7373
this.translogSizeInBytes += translogStats.translogSizeInBytes;
7474
this.uncommittedOperations += translogStats.uncommittedOperations;
7575
this.uncommittedSizeInBytes += translogStats.uncommittedSizeInBytes;
76-
this.earliestLastModifiedAge =
77-
Math.min(this.earliestLastModifiedAge, translogStats.earliestLastModifiedAge);
76+
if (this.earliestLastModifiedAge == 0) {
77+
this.earliestLastModifiedAge = translogStats.earliestLastModifiedAge;
78+
} else {
79+
this.earliestLastModifiedAge =
80+
Math.min(this.earliestLastModifiedAge, translogStats.earliestLastModifiedAge);
81+
}
7882
}
7983

8084
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
@@ -543,14 +543,18 @@ public void testUncommittedOperations() throws Exception {
543543

544544
public void testTotalTests() {
545545
final TranslogStats total =
546-
new TranslogStats(0, 0, 0, 0, 1);
546+
new TranslogStats();
547547
final int n = randomIntBetween(0, 16);
548548
final List<TranslogStats> statsList = new ArrayList<>(n);
549+
long earliestLastModifiedAge = Long.MAX_VALUE;
549550
for (int i = 0; i < n; i++) {
550551
final TranslogStats stats = new TranslogStats(randomIntBetween(1, 4096), randomIntBetween(1, 1 << 20),
551552
randomIntBetween(1, 1 << 20), randomIntBetween(1, 4096), randomIntBetween(1, 1 << 20));
552553
statsList.add(stats);
553554
total.add(stats);
555+
if (earliestLastModifiedAge > stats.getEarliestLastModifiedAge()) {
556+
earliestLastModifiedAge = stats.getEarliestLastModifiedAge();
557+
}
554558
}
555559

556560
assertThat(
@@ -567,7 +571,7 @@ public void testTotalTests() {
567571
equalTo(statsList.stream().mapToLong(TranslogStats::getUncommittedSizeInBytes).sum()));
568572
assertThat(
569573
total.getEarliestLastModifiedAge(),
570-
equalTo(1L));
574+
equalTo(earliestLastModifiedAge));
571575
}
572576

573577
public void testNegativeNumberOfOperations() {

0 commit comments

Comments
 (0)