From 65e585e12213d81d4509bbdb91b36bb5f3a6c5b3 Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Sat, 3 Oct 2020 10:42:41 -0400 Subject: [PATCH] Pause only if we're running low on queues to persist. --- .../textsecuregcm/storage/MessagePersister.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/storage/MessagePersister.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/MessagePersister.java index 0ff36ea2b..c186ad3f9 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/storage/MessagePersister.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/storage/MessagePersister.java @@ -58,8 +58,12 @@ public class MessagePersister implements Managed { this.workerThread = new Thread(() -> { while (running) { try { - persistNextQueues(Instant.now()); - Util.sleep(100); + final int queuesPersisted = persistNextQueues(Instant.now()); + queueCountHistogram.update(queuesPersisted); + + if (queuesPersisted == 0) { + Util.sleep(100); + } } catch (final Throwable t) { logger.warn("Failed to persist queues", t); } @@ -92,7 +96,7 @@ public class MessagePersister implements Managed { } @VisibleForTesting - void persistNextQueues(final Instant currentTime) { + int persistNextQueues(final Instant currentTime) { final int slot = messagesCache.getNextSlotToPersist(); List queuesToPersist; @@ -118,7 +122,7 @@ public class MessagePersister implements Managed { queuesPersisted += queuesToPersist.size(); } while (queuesToPersist.size() >= QUEUE_BATCH_LIMIT); - queueCountHistogram.update(queuesPersisted); + return queuesPersisted; } @VisibleForTesting