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:05 UTC
[5/9] accumulo git commit: Merge branch 'ACCUMULO-2388' of
github:keith-turner/accumulo into 1.6
Merge branch 'ACCUMULO-2388' of github:keith-turner/accumulo into 1.6
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/25475d0a
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/25475d0a
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/25475d0a
Branch: refs/heads/1.7
Commit: 25475d0a3f05093975439084944972cb73827537
Parents: ddd3932 6965fb0
Author: Christopher Tubbs <ct...@apache.org>
Authored: Tue Jun 16 17:29:22 2015 -0400
Committer: Christopher Tubbs <ct...@apache.org>
Committed: Tue Jun 16 17:29:22 2015 -0400
----------------------------------------------------------------------
.../apache/accumulo/tserver/TabletServer.java | 50 +++++++++++++++-----
1 file changed, 38 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/25475d0a/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 0446da3,870abd8..3cffa38
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
@@@ -1587,11 -1588,22 +1588,22 @@@ public class TabletServer extends Abstr
mutations.add(mutation);
us.queuedMutationSize += mutation.numBytes();
}
- if (us.queuedMutationSize > getSystemConfiguration().getMemoryInBytes(Property.TSERV_MUTATION_QUEUE_MAX))
- flush(us);
+ if (us.queuedMutationSize > getSystemConfiguration().getMemoryInBytes(Property.TSERV_MUTATION_QUEUE_MAX)) {
- try{
++ try {
+ flush(us);
- }catch(HoldTimeoutException hte){
++ } 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 {
- sessionManager.unreserveSession(us);
- if(reserved) {
++ if (reserved) {
+ sessionManager.unreserveSession(us);
+ }
}
}
@@@ -1769,6 -1777,10 +1777,10 @@@
try {
flush(us);
+ } catch (HoldTimeoutException e) {
- //Assumption is that the client has timed out and is gone. If thats not the case throw an exception that will cause it to retry.
++ // Assumption is that the client has timed out and is gone. If thats not the case throw an exception that will cause it to retry.
+ log.debug("HoldTimeoutException during closeUpdate, reporting no such session");
+ throw new NoSuchScanIDException();
} finally {
writeTracker.finishWrite(opid);
}
@@@ -1807,8 -1819,14 +1819,15 @@@
throw new NotServingTabletException(tkeyExtent);
}
- 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.
++ // 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));
@@@ -2088,8 -2106,15 +2107,15 @@@
if (cs == null || cs.interruptFlag.get())
throw new NoSuchScanIDException();
- if (!cs.tableId.equals(MetadataTable.ID) && !cs.tableId.equals(RootTable.ID))
- TabletServer.this.resourceManager.waitUntilCommitsAreEnabled();
- if (!cs.tableId.equals(MetadataTable.ID) && !cs.tableId.equals(RootTable.ID)){
- try{
++ if (!cs.tableId.equals(MetadataTable.ID) && !cs.tableId.equals(RootTable.ID)) {
++ try {
+ TabletServer.this.resourceManager.waitUntilCommitsAreEnabled();
- } catch (HoldTimeoutException hte){
- //Assumption is that the client has timed out and is gone. If thats not the case throw an exception that will cause it to retry.
++ } catch (HoldTimeoutException hte) {
++ // Assumption is that the client has timed out and is gone. If thats not the case throw an exception that will cause it to retry.
+ log.debug("HoldTimeoutException during conditionalUpdate, reporting no such session");
+ throw new NoSuchScanIDException();
+ }
+ }
Text tid = new Text(cs.tableId);
long opid = writeTracker.startWrite(TabletType.type(new KeyExtent(tid, null, null)));