private void reportSize() { boolean success; long bufferEntries = bulkWrites.numEntries(); int numRegions = bulkWrites.numRegions(); statusReporter.totalFlushEntries.addAndGet(bufferEntries); statusReporter.totalFlushRegions.addAndGet(numRegions); do { long currentMax = statusReporter.maxFlushRegions.get(); success = currentMax >= bufferEntries || statusReporter.maxFlushRegions.compareAndSet(currentMax, bufferEntries); } while (!success); do { long currentMin = statusReporter.minFlushRegions.get(); success = currentMin <= bufferEntries || statusReporter.minFlushRegions.compareAndSet(currentMin, bufferEntries); } while (!success); do { long currentMax = statusReporter.maxFlushEntries.get(); success = currentMax >= bufferEntries || statusReporter.maxFlushEntries.compareAndSet(currentMax, bufferEntries); } while (!success); do { long currentMin = statusReporter.minFlushEntries.get(); success = currentMin <= bufferEntries || statusReporter.minFlushEntries.compareAndSet(currentMin, bufferEntries); } while (!success); long bufferSizeBytes = bulkWrites.getBufferHeapSize(); statusReporter.totalFlushSizeBytes.addAndGet(bufferSizeBytes); do { long currentMax = statusReporter.maxFlushSizeBytes.get(); success = currentMax >= bufferSizeBytes || statusReporter.maxFlushSizeBytes.compareAndSet(currentMax, bufferSizeBytes); } while (!success); do { long currentMin = statusReporter.minFlushSizeBytes.get(); success = currentMin <= bufferSizeBytes || statusReporter.maxFlushSizeBytes.compareAndSet(currentMin, bufferSizeBytes); } while (!success); }