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);