This is an automated email from the ASF dual-hosted git repository.
nfsantos pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
The following commit(s) were added to refs/heads/trunk by this push:
new 32d11a8dfa OAK-11606 - indexing-job: throttle messages warning about
enqueuing delays in IndexWriterPool
32d11a8dfa is described below
commit 32d11a8dfa4e506c08d1fd311acec9411a90ff58
Author: Nuno Santos <[email protected]>
AuthorDate: Wed Mar 19 11:33:08 2025 +0100
OAK-11606 - indexing-job: throttle messages warning about enqueuing delays
in IndexWriterPool
---
.../plugins/index/lucene/writer/IndexWriterPool.java | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/IndexWriterPool.java
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/IndexWriterPool.java
index a9d9104c5a..052b33b819 100644
---
a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/IndexWriterPool.java
+++
b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/IndexWriterPool.java
@@ -84,6 +84,7 @@ public class IndexWriterPool {
private long updateCount = 0;
private long deleteCount = 0;
private long totalEnqueueTimeNanos = 0;
+ private long enqueuingDelayMessageLastLoggedMillis = 0;
private static class OperationBatch {
final long sequenceNumber;
@@ -379,14 +380,19 @@ public class IndexWriterPool {
if (seqNumber % 1000 == 0) {
LOG.info("Enqueuing batch {}, size: {}", seqNumber,
batch.size());
}
- long start = System.nanoTime();
+ long enqueuingStartNanos = System.nanoTime();
queue.put(new OperationBatch(seqNumber, batch.toArray(new
Operation[0])));
- long durationNanos = System.nanoTime() - start;
- long durationMillis = durationNanos / 1_000_000;
+ long enqueuingEndNanos = System.nanoTime();
+ long durationNanos = enqueuingEndNanos - enqueuingStartNanos;
totalEnqueueTimeNanos += durationNanos;
- if (durationMillis > 1) {
- LOG.info("Enqueuing batch delayed. Seq number: {}, size: {}.
Delay: {} ms",
- seqNumber, batch.size(), durationMillis);
+ long durationMillis = durationNanos / 1_000_000;
+ if (durationMillis > 10) {
+ long currentTimeMillis = enqueuingEndNanos / 1_000_000;
+ if (currentTimeMillis - enqueuingDelayMessageLastLoggedMillis
> TimeUnit.SECONDS.toMillis(10)) {
+ LOG.info("Enqueuing batch delayed. Seq number: {}, size:
{}. Delay: {} ms (These messages are logged every 10 seconds)",
+ seqNumber, batch.size(), durationMillis);
+ enqueuingDelayMessageLastLoggedMillis = currentTimeMillis;
+ }
}
batch.clear();
return seqNumber;