This is an automated email from the ASF dual-hosted git repository.

kturner pushed a commit to branch 2.1
in repository https://gitbox.apache.org/repos/asf/accumulo.git


The following commit(s) were added to refs/heads/2.1 by this push:
     new d5756e8f2d decrements total queued mutation size when update idles 
(#5236)
d5756e8f2d is described below

commit d5756e8f2d39ed114794d5a695d2e09203ee57ae
Author: Keith Turner <ktur...@apache.org>
AuthorDate: Wed Jan 8 11:42:58 2025 -0500

    decrements total queued mutation size when update idles (#5236)
    
    fixes #5235
---
 .../org/apache/accumulo/tserver/TabletClientHandler.java | 16 +++++++++++++++-
 .../java/org/apache/accumulo/tserver/TabletServer.java   |  7 ++++++-
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletClientHandler.java
 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletClientHandler.java
index c6b3873902..7ef64352d9 100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletClientHandler.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletClientHandler.java
@@ -258,7 +258,21 @@ public class TabletClientHandler implements 
TabletClientService.Iface {
 
     UpdateSession us =
         new UpdateSession(new TservConstraintEnv(server.getContext(), 
security, credentials),
-            credentials, durability);
+            credentials, durability) {
+          @Override
+          public boolean cleanup() {
+            // This is called when a client abandons a session. When this 
happens need to decrement
+            // any queued mutations.
+            if (queuedMutationSize > 0) {
+              log.trace(
+                  "cleaning up abandoned update session, decrementing 
totalQueuedMutationSize by {}",
+                  queuedMutationSize);
+              server.updateTotalQueuedMutationSize(-queuedMutationSize);
+              queuedMutationSize = 0;
+            }
+            return true;
+          }
+        };
     return server.sessionManager.createSession(us, false);
   }
 
diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
index 3a3ad3f3b1..beb2e550a6 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
@@ -417,7 +417,12 @@ public class TabletServer extends AbstractServer 
implements TabletHostingServer
   }
 
   public long updateTotalQueuedMutationSize(long additionalMutationSize) {
-    return totalQueuedMutationSize.addAndGet(additionalMutationSize);
+    var newTotal = totalQueuedMutationSize.addAndGet(additionalMutationSize);
+    if (log.isTraceEnabled()) {
+      log.trace("totalQueuedMutationSize is now {} after adding {}", newTotal,
+          additionalMutationSize);
+    }
+    return newTotal;
   }
 
   @Override

Reply via email to