Repository: incubator-brooklyn Updated Branches: refs/heads/master 2a004d939 -> 50cd8a10f
Reduces excessively chatty logging on persistence checkpoints Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/f5a7d057 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/f5a7d057 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/f5a7d057 Branch: refs/heads/master Commit: f5a7d0578660394031ea2083d5e7e6acce15c349 Parents: b73c05b Author: Martin Harris <[email protected]> Authored: Thu Jun 11 17:09:28 2015 +0530 Committer: Martin Harris <[email protected]> Committed: Mon Oct 12 13:24:00 2015 +0100 ---------------------------------------------------------------------- ...ManagementPlaneSyncRecordPersisterToObjectStore.java | 12 +++++++++++- .../core/mgmt/rebind/PeriodicDeltaChangeListener.java | 12 ++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f5a7d057/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/ManagementPlaneSyncRecordPersisterToObjectStore.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/ManagementPlaneSyncRecordPersisterToObjectStore.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/ManagementPlaneSyncRecordPersisterToObjectStore.java index 8380a9f..18bc5cc 100644 --- a/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/ManagementPlaneSyncRecordPersisterToObjectStore.java +++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/ManagementPlaneSyncRecordPersisterToObjectStore.java @@ -26,6 +26,8 @@ import java.util.List; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; import org.apache.brooklyn.api.mgmt.ManagementContext; import org.apache.brooklyn.api.mgmt.ha.HighAvailabilityMode; @@ -103,6 +105,9 @@ public class ManagementPlaneSyncRecordPersisterToObjectStore implements Manageme private boolean started = false; private volatile boolean running = true; + + protected final AtomicLong checkpointLogCount = new AtomicLong(); + private static final int INITIAL_LOG_WRITES = 5; @VisibleForTesting /** allows, when testing, to be able to override file times / blobstore times with time from the ticker */ @@ -270,7 +275,7 @@ public class ManagementPlaneSyncRecordPersisterToObjectStore implements Manageme default: throw new IllegalStateException("Unknown state for master-change: "+delta.getMasterChange()); } - if (LOG.isDebugEnabled()) LOG.debug("Checkpointed delta of manager-memento in "+Time.makeTimeStringRounded(stopwatch)+": "+delta); + if (LOG.isDebugEnabled() && shouldLogCheckpoint()) LOG.debug("Checkpointed delta of manager-memento in "+Time.makeTimeStringRounded(stopwatch)+": "+delta); } private void persistMaster(String nodeId, String optionalExpectedId) { @@ -351,4 +356,9 @@ public class ManagementPlaneSyncRecordPersisterToObjectStore implements Manageme return writer; } + protected boolean shouldLogCheckpoint() { + long logCount = checkpointLogCount.incrementAndGet(); + return (logCount < INITIAL_LOG_WRITES) || (logCount % 1000 == 0); + } + } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f5a7d057/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/PeriodicDeltaChangeListener.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/PeriodicDeltaChangeListener.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/PeriodicDeltaChangeListener.java index e0c15df..ee687a5 100644 --- a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/PeriodicDeltaChangeListener.java +++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/PeriodicDeltaChangeListener.java @@ -26,6 +26,7 @@ import java.util.concurrent.Semaphore; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -81,6 +82,9 @@ public class PeriodicDeltaChangeListener implements ChangeListener { private static final Logger LOG = LoggerFactory.getLogger(PeriodicDeltaChangeListener.class); + protected final AtomicLong checkpointLogCount = new AtomicLong(); + private static final int INITIAL_LOG_WRITES = 5; + private static class DeltaCollector { private Set<Location> locations = Sets.newLinkedHashSet(); private Set<Entity> entities = Sets.newLinkedHashSet(); @@ -386,7 +390,7 @@ public class PeriodicDeltaChangeListener implements ChangeListener { deltaCollector = new DeltaCollector(); } - if (LOG.isDebugEnabled()) LOG.debug("Checkpointing delta of memento: " + if (LOG.isDebugEnabled() && shouldLogCheckpoint()) LOG.debug("Checkpointing delta of memento: " + "updating entities={}, locations={}, policies={}, enrichers={}, catalog items={}; " + "removing entities={}, locations={}, policies={}, enrichers={}, catalog items={}", new Object[] { @@ -497,5 +501,9 @@ public class PeriodicDeltaChangeListener implements ChangeListener { public PersistenceExceptionHandler getExceptionHandler() { return exceptionHandler; } - + + protected boolean shouldLogCheckpoint() { + long logCount = checkpointLogCount.incrementAndGet(); + return (logCount < INITIAL_LOG_WRITES) || (logCount % 1000 == 0); + } }
