You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by ct...@apache.org on 2015/06/16 23:42:07 UTC

[7/9] accumulo git commit: Merge branch '1.6' into 1.7

Merge branch '1.6' into 1.7

Conflicts:
	server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java


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

Branch: refs/heads/1.7
Commit: e76d89a8b5070840cacabbe5b29c7ec569be66ec
Parents: 5ef5b85 25475d0
Author: Christopher Tubbs <ct...@apache.org>
Authored: Tue Jun 16 17:37:08 2015 -0400
Committer: Christopher Tubbs <ct...@apache.org>
Committed: Tue Jun 16 17:37:08 2015 -0400

----------------------------------------------------------------------
 .../apache/accumulo/tserver/TabletServer.java   | 47 +++++++++++++++-----
 1 file changed, 36 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/e76d89a8/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
----------------------------------------------------------------------
diff --cc server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
index 5656db4,3cffa38..8b6ad30
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
@@@ -764,13 -1586,18 +765,21 @@@ public class TabletServer extends Accum
            for (TMutation tmutation : tmutations) {
              Mutation mutation = new ServerMutation(tmutation);
              mutations.add(mutation);
 -            us.queuedMutationSize += mutation.numBytes();
 +            additionalMutationSize += mutation.numBytes();
            }
 -          if (us.queuedMutationSize > getSystemConfiguration().getMemoryInBytes(Property.TSERV_MUTATION_QUEUE_MAX)) {
 +          us.queuedMutationSize += additionalMutationSize;
 +          long totalQueued = updateTotalQueuedMutationSize(additionalMutationSize);
 +          long total = TabletServer.this.getConfiguration().getMemoryInBytes(Property.TSERV_TOTAL_MUTATION_QUEUE_MAX);
 +          if (totalQueued > total) {
-             flush(us);
+             try {
+               flush(us);
+             } catch (HoldTimeoutException hte) {
+               // Assumption is that the client has timed out and is gone. If thats not the case, then removing the session should cause the client to fail
+               // in such a way that it retries.
+               log.debug("HoldTimeoutException during applyUpdates, removing session");
+               sessionManager.removeSession(updateID, true);
+               reserved = false;
+             }
            }
          }
        } finally {
@@@ -987,18 -1818,24 +998,25 @@@
        if (tablet == null) {
          throw new NotServingTabletException(tkeyExtent);
        }
 +      Durability tabletDurability = tablet.getDurability();
  
-       if (!keyExtent.isMeta())
-         TabletServer.this.resourceManager.waitUntilCommitsAreEnabled();
+       if (!keyExtent.isMeta()) {
+         try {
+           TabletServer.this.resourceManager.waitUntilCommitsAreEnabled();
+         } catch (HoldTimeoutException hte) {
+           // Major hack. Assumption is that the client has timed out and is gone. If thats not the case, then throwing the following will let client know there
+           // was a failure and it should retry.
+           throw new NotServingTabletException(tkeyExtent);
+         }
+       }
  
 -      long opid = writeTracker.startWrite(TabletType.type(keyExtent));
 +      final long opid = writeTracker.startWrite(TabletType.type(keyExtent));
  
        try {
 -        Mutation mutation = new ServerMutation(tmutation);
 -        List<Mutation> mutations = Collections.singletonList(mutation);
 +        final Mutation mutation = new ServerMutation(tmutation);
 +        final List<Mutation> mutations = Collections.singletonList(mutation);
  
 -        Span prep = Trace.start("prep");
 +        final Span prep = Trace.start("prep");
          CommitSession cs;
          try {
            cs = tablet.prepareMutationsForCommit(new TservConstraintEnv(security, credentials), mutations);