From 480d3a70b784a1e131b9f8e9216f33f764c94348 Mon Sep 17 00:00:00 2001 From: gaozhangmin Date: Mon, 28 Jul 2025 14:34:14 +0800 Subject: [PATCH] PoolingPolicy support UnpooledDirect --- .../org/apache/bookkeeper/common/allocator/PoolingPolicy.java | 2 ++ .../bookkeeper/common/allocator/impl/ByteBufAllocatorImpl.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/bookkeeper-common-allocator/src/main/java/org/apache/bookkeeper/common/allocator/PoolingPolicy.java b/bookkeeper-common-allocator/src/main/java/org/apache/bookkeeper/common/allocator/PoolingPolicy.java index 40917b42a1c..093511fb54f 100644 --- a/bookkeeper-common-allocator/src/main/java/org/apache/bookkeeper/common/allocator/PoolingPolicy.java +++ b/bookkeeper-common-allocator/src/main/java/org/apache/bookkeeper/common/allocator/PoolingPolicy.java @@ -31,6 +31,8 @@ public enum PoolingPolicy { */ UnpooledHeap, + UnpooledDirect, + /** * Use Direct memory for all buffers and pool the memory. * diff --git a/bookkeeper-common-allocator/src/main/java/org/apache/bookkeeper/common/allocator/impl/ByteBufAllocatorImpl.java b/bookkeeper-common-allocator/src/main/java/org/apache/bookkeeper/common/allocator/impl/ByteBufAllocatorImpl.java index 3bc06f8e7ea..0f94329ac92 100644 --- a/bookkeeper-common-allocator/src/main/java/org/apache/bookkeeper/common/allocator/impl/ByteBufAllocatorImpl.java +++ b/bookkeeper-common-allocator/src/main/java/org/apache/bookkeeper/common/allocator/impl/ByteBufAllocatorImpl.java @@ -140,7 +140,7 @@ public ByteBuf buffer(int initialCapacity) { @Override public ByteBuf buffer(int initialCapacity, int maxCapacity) { - if (poolingPolicy == PoolingPolicy.PooledDirect) { + if (poolingPolicy == PoolingPolicy.PooledDirect || poolingPolicy == PoolingPolicy.UnpooledDirect) { return newDirectBuffer(initialCapacity, maxCapacity, true /* can fallback to heap if needed */); } else { return newHeapBuffer(initialCapacity, maxCapacity);