Repository: accumulo Updated Branches: refs/heads/ACCUMULO-1755 7e93105d1 -> 27b69bedc
ACCUMULO-1755: Applied Keiths suggestion Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/27b69bed Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/27b69bed Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/27b69bed Branch: refs/heads/ACCUMULO-1755 Commit: 27b69bedcb1e1ffcde1e47f9fbd9765027644f65 Parents: 7e93105 Author: Dave Marion <dlmar...@apache.org> Authored: Wed Mar 2 11:38:08 2016 -0500 Committer: Dave Marion <dlmar...@apache.org> Committed: Wed Mar 2 11:38:08 2016 -0500 ---------------------------------------------------------------------- .../client/impl/TabletServerBatchWriter.java | 30 ++++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/27b69bed/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchWriter.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchWriter.java b/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchWriter.java index 6a8e2dd..35281d6 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchWriter.java +++ b/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchWriter.java @@ -439,15 +439,25 @@ public class TabletServerBatchWriter { } } + private static void computeMin(AtomicInteger stat, int update) { + int old = stat.get(); + while (!stat.compareAndSet(old, Math.min(old, update))) { + old = stat.get(); + } + } + + private static void computeMax(AtomicInteger stat, int update) { + int old = stat.get(); + while (!stat.compareAndSet(old, Math.max(old, update))) { + old = stat.get(); + } + } + private void updateBatchStats(Map<String,TabletServerMutations<Mutation>> binnedMutations) { tabletServersBatchSum.addAndGet(binnedMutations.size()); - synchronized (minTabletServersBatch) { - minTabletServersBatch.set(Math.min(minTabletServersBatch.get(), binnedMutations.size())); - } - synchronized (maxTabletServersBatch) { - maxTabletServersBatch.set(Math.max(maxTabletServersBatch.get(), binnedMutations.size())); - } + computeMin(minTabletServersBatch, binnedMutations.size()); + computeMax(maxTabletServersBatch, binnedMutations.size()); int numTablets = 0; @@ -458,12 +468,8 @@ public class TabletServerBatchWriter { tabletBatchSum.addAndGet(numTablets); - synchronized (minTabletBatch) { - minTabletBatch.set(Math.min(minTabletBatch.get(), numTablets)); - } - synchronized (maxTabletBatch) { - maxTabletBatch.set(Math.max(maxTabletBatch.get(), numTablets)); - } + computeMin(minTabletBatch, numTablets); + computeMax(maxTabletBatch, numTablets); numBatches.incrementAndGet(); }