You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by kt...@apache.org on 2013/07/23 18:55:15 UTC
[50/50] git commit: ACCUMULO-1000 more timeout handling
ACCUMULO-1000 more timeout handling
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/95931ea0
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/95931ea0
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/95931ea0
Branch: refs/heads/ACCUMULO-1000
Commit: 95931ea0bb7c41210758c37ec0cd9aa873772e67
Parents: 79019ef
Author: Keith Turner <kt...@apache.org>
Authored: Tue Jul 23 12:54:12 2013 -0400
Committer: Keith Turner <kt...@apache.org>
Committed: Tue Jul 23 12:54:12 2013 -0400
----------------------------------------------------------------------
.../accumulo/core/client/impl/ConditionalWriterImpl.java | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/95931ea0/core/src/main/java/org/apache/accumulo/core/client/impl/ConditionalWriterImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/accumulo/core/client/impl/ConditionalWriterImpl.java b/core/src/main/java/org/apache/accumulo/core/client/impl/ConditionalWriterImpl.java
index 55aa718..157b6cb 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/impl/ConditionalWriterImpl.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/impl/ConditionalWriterImpl.java
@@ -85,7 +85,7 @@ class ConditionalWriterImpl implements ConditionalWriter {
private static final Logger log = Logger.getLogger(ConditionalWriterImpl.class);
- private static final int MAX_SLEEP = 5000;
+ private static final int MAX_SLEEP = 30000;
private static final long SESSION_CACHE_TIME = 60000;
@@ -592,13 +592,15 @@ class ConditionalWriterImpl implements ConditionalWriter {
long sleepTime = 50;
+ long startTime = System.currentTimeMillis();
+
while (true) {
Map<String,TabletServerMutations<QCMutation>> binnedMutations = new HashMap<String,TabletLocator.TabletServerMutations<QCMutation>>();
List<QCMutation> failures = new ArrayList<QCMutation>();
locator.binMutations(mutList, binnedMutations, failures, credentials);
- // TODO do failures matter? not if failures only indicates tablets are not assigned
+ // failures should not matter, if failures only indicates tablets are not assigned
if (!binnedMutations.containsKey(location)) {
// the tablets are at different locations now, so there is no need to invalidate the session
@@ -616,6 +618,9 @@ class ConditionalWriterImpl implements ConditionalWriter {
locator.invalidateCache(location);
}
+ if ((System.currentTimeMillis() - startTime) + sleepTime > timeout)
+ throw new TimedOutException(Collections.singleton(location));
+
UtilWaitThread.sleep(sleepTime);
sleepTime = Math.min(2 * sleepTime, MAX_SLEEP);