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);
  }