Class HeapMemoryAllocator

java.lang.Object
org.apache.druid.frame.allocation.HeapMemoryAllocator
All Implemented Interfaces:
MemoryAllocator

public class HeapMemoryAllocator extends Object implements MemoryAllocator
Allocator that uses ByteBuffer.allocate(int) to create chunks in the JVM heap.
  • Method Details

    • unlimited

      public static HeapMemoryAllocator unlimited()
      Create an allocator that is "unlimited", which, of course, means it is limited only by available JVM heap.
    • allocate

      public Optional<ResourceHolder<org.apache.datasketches.memory.WritableMemory>> allocate(long size)
      Description copied from interface: MemoryAllocator
      Allocates a block of memory of capacity . Returns empty if no more memory is available. The memory can be freed by closing the returned ResourceHolder. The returned WritableMemory object will use little-endian byte order.
      Specified by:
      allocate in interface MemoryAllocator
    • available

      public long available()
      Description copied from interface: MemoryAllocator
      Returns the number of bytes available for allocations. May return Long.MAX_VALUE if there is no inherent limit. This generally does not mean you can actually allocate 9 exabytes.
      Specified by:
      available in interface MemoryAllocator
    • capacity

      public long capacity()
      Description copied from interface: MemoryAllocator
      Returns the number of bytes managed by this allocator. When no memory has been allocated yet, this is identical to MemoryAllocator.available(). May return Long.MAX_VALUE if there is no inherent limit. This generally does not mean you can actually allocate 9 exabytes.
      Specified by:
      capacity in interface MemoryAllocator