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

hongze pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-gluten.git


The following commit(s) were added to refs/heads/main by this push:
     new cb3979e8a0 [GLUTEN-10932][VL] Pass memory changes to taskMemoryManager 
for dynamic off heap (#10936)
cb3979e8a0 is described below

commit cb3979e8a0ea87c42ab227162a971ed3f7095d88
Author: Zhen Wang <[email protected]>
AuthorDate: Tue Oct 28 00:39:21 2025 +0800

    [GLUTEN-10932][VL] Pass memory changes to taskMemoryManager for dynamic off 
heap (#10936)
    
    Closes #10932
---
 .../memory/memtarget/DynamicOffHeapSizingMemoryTarget.java   | 12 +++++++++++-
 .../org/apache/gluten/memory/memtarget/MemoryTargets.java    |  2 +-
 .../main/scala/org/apache/spark/memory/SparkMemoryUtil.scala |  1 +
 3 files changed, 13 insertions(+), 2 deletions(-)

diff --git 
a/gluten-core/src/main/java/org/apache/gluten/memory/memtarget/DynamicOffHeapSizingMemoryTarget.java
 
b/gluten-core/src/main/java/org/apache/gluten/memory/memtarget/DynamicOffHeapSizingMemoryTarget.java
index b1664223aa..3124f78fb7 100644
--- 
a/gluten-core/src/main/java/org/apache/gluten/memory/memtarget/DynamicOffHeapSizingMemoryTarget.java
+++ 
b/gluten-core/src/main/java/org/apache/gluten/memory/memtarget/DynamicOffHeapSizingMemoryTarget.java
@@ -130,7 +130,11 @@ public class DynamicOffHeapSizingMemoryTarget implements 
MemoryTarget, KnownName
   private final String name = 
MemoryTargetUtil.toUniqueName("DynamicOffHeapSizing");
   private final SimpleMemoryUsageRecorder recorder = new 
SimpleMemoryUsageRecorder();
 
-  public DynamicOffHeapSizingMemoryTarget() {}
+  private final MemoryTarget target;
+
+  public DynamicOffHeapSizingMemoryTarget(MemoryTarget target) {
+    this.target = target;
+  }
 
   @Override
   public long borrow(long size) {
@@ -197,6 +201,7 @@ public class DynamicOffHeapSizingMemoryTarget implements 
MemoryTarget, KnownName
 
     USED_OFF_HEAP_BYTES.addAndGet(size);
     recorder.inc(size);
+    target.borrow(size);
     return size;
   }
 
@@ -204,6 +209,7 @@ public class DynamicOffHeapSizingMemoryTarget implements 
MemoryTarget, KnownName
   public long repay(long size) {
     USED_OFF_HEAP_BYTES.addAndGet(-size);
     recorder.inc(-size);
+    target.repay(size);
     return size;
   }
 
@@ -227,6 +233,10 @@ public class DynamicOffHeapSizingMemoryTarget implements 
MemoryTarget, KnownName
     return recorder.toStats();
   }
 
+  public MemoryTarget target() {
+    return target;
+  }
+
   public static boolean isJava9OrLater() {
     String spec = System.getProperty("java.specification.version", "1.8");
     // "1.8" → 8, "9" → 9, "11" → 11, etc.
diff --git 
a/gluten-core/src/main/java/org/apache/gluten/memory/memtarget/MemoryTargets.java
 
b/gluten-core/src/main/java/org/apache/gluten/memory/memtarget/MemoryTargets.java
index b1e41bc9eb..e6cab4b6a8 100644
--- 
a/gluten-core/src/main/java/org/apache/gluten/memory/memtarget/MemoryTargets.java
+++ 
b/gluten-core/src/main/java/org/apache/gluten/memory/memtarget/MemoryTargets.java
@@ -52,7 +52,7 @@ public final class MemoryTargets {
   @Experimental
   public static MemoryTarget dynamicOffHeapSizingIfEnabled(MemoryTarget 
memoryTarget) {
     if (GlutenCoreConfig.get().dynamicOffHeapSizingEnabled()) {
-      return new DynamicOffHeapSizingMemoryTarget();
+      return new DynamicOffHeapSizingMemoryTarget(memoryTarget);
     }
 
     return memoryTarget;
diff --git 
a/gluten-core/src/main/scala/org/apache/spark/memory/SparkMemoryUtil.scala 
b/gluten-core/src/main/scala/org/apache/spark/memory/SparkMemoryUtil.scala
index ae287cef3f..a902c448fe 100644
--- a/gluten-core/src/main/scala/org/apache/spark/memory/SparkMemoryUtil.scala
+++ b/gluten-core/src/main/scala/org/apache/spark/memory/SparkMemoryUtil.scala
@@ -132,6 +132,7 @@ object SparkMemoryUtil {
         prettyPrintStats(
           "Dynamic off-heap sizing memory target stats: ",
           dynamicOffHeapSizingMemoryTarget)
+        dynamicOffHeapSizingMemoryTarget.target().accept(this)
       }
 
       override def visit(retryOnOomMemoryTarget: RetryOnOomMemoryTarget): 
String = {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to