Repository: accumulo
Updated Branches:
  refs/heads/master c032ec4b2 -> aae9e977f


ACCUMULO-2997 Improve comment about race condition

Improves the comment in the threadpool size adjustment code, to clarify what the
race condition is, and why it's not really a problem.


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/2016ab93
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/2016ab93
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/2016ab93

Branch: refs/heads/master
Commit: 2016ab93cc8960bf9aea0d196cb2297abf6c74ad
Parents: 87eec6f
Author: Christopher Tubbs <ctubb...@apache.org>
Authored: Thu Jan 15 16:07:38 2015 -0500
Committer: Christopher Tubbs <ctubb...@apache.org>
Committed: Thu Jan 15 16:07:38 2015 -0500

----------------------------------------------------------------------
 .../java/org/apache/accumulo/server/util/TServerUtils.java     | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/2016ab93/server/src/main/java/org/apache/accumulo/server/util/TServerUtils.java
----------------------------------------------------------------------
diff --git 
a/server/src/main/java/org/apache/accumulo/server/util/TServerUtils.java 
b/server/src/main/java/org/apache/accumulo/server/util/TServerUtils.java
index bece746..ba93227 100644
--- a/server/src/main/java/org/apache/accumulo/server/util/TServerUtils.java
+++ b/server/src/main/java/org/apache/accumulo/server/util/TServerUtils.java
@@ -221,6 +221,8 @@ public class TServerUtils {
     SimpleTimer.getInstance().schedule(new Runnable() {
       @Override
       public void run() {
+        // there is a minor race condition between sampling the current state 
of the thread pool and adjusting it
+        // however, this isn't really an issue, since it adjusts periodically 
anyway
         if (pool.getCorePoolSize() <= pool.getActiveCount()) {
           int larger = pool.getCorePoolSize() + 
Math.min(pool.getQueue().size(), 2);
           log.info("Increasing server thread pool size on " + serverName + " 
to " + larger);
@@ -230,10 +232,6 @@ public class TServerUtils {
           if (pool.getCorePoolSize() > pool.getActiveCount() + 3) {
             int smaller = Math.max(numThreads, pool.getCorePoolSize() - 1);
             if (smaller != pool.getCorePoolSize()) {
-              // ACCUMULO-2997 there is a race condition here... the active 
count could be higher by the time
-              // we decrease the core pool size... so the active count could 
end up higher than
-              // the core pool size, in which case everything will be 
queued... the increase case
-              // should handle this and prevent deadlock
               log.info("Decreasing server thread pool size on " + serverName + 
" to " + smaller);
               pool.setCorePoolSize(smaller);
             }

Reply via email to