org.apache.lucene.util
Class RecyclingByteBlockAllocator
java.lang.Object
org.apache.lucene.util.ByteBlockPool.Allocator
org.apache.lucene.util.RecyclingByteBlockAllocator
public final class RecyclingByteBlockAllocator
- extends ByteBlockPool.Allocator
A ByteBlockPool.Allocator
implementation that recycles unused byte
blocks in a buffer and reuses them in subsequent calls to
getByteBlock()
.
- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DEFAULT_BUFFERED_BLOCKS
public static final int DEFAULT_BUFFERED_BLOCKS
- See Also:
- Constant Field Values
RecyclingByteBlockAllocator
public RecyclingByteBlockAllocator(int blockSize,
int maxBufferedBlocks,
AtomicLong bytesUsed)
- Creates a new
RecyclingByteBlockAllocator
- Parameters:
blockSize
- the block size in bytesmaxBufferedBlocks
- maximum number of buffered byte blockbytesUsed
- AtomicLong
reference counting internally allocated bytes- See Also:
DummyConcurrentLock
RecyclingByteBlockAllocator
public RecyclingByteBlockAllocator(int blockSize,
int maxBufferedBlocks)
- Creates a new
RecyclingByteBlockAllocator
with a
DummyConcurrentLock
instance.
- Parameters:
blockSize
- the block size in bytesmaxBufferedBlocks
- maximum number of buffered byte block
RecyclingByteBlockAllocator
public RecyclingByteBlockAllocator()
- Creates a new
RecyclingByteBlockAllocator
with a block size of
ByteBlockPool.BYTE_BLOCK_SIZE
, upper buffered docs limit of
DEFAULT_BUFFERED_BLOCKS
(64) and a
DummyConcurrentLock
instance.
getByteBlock
public byte[] getByteBlock()
- Overrides:
getByteBlock
in class ByteBlockPool.Allocator
recycleByteBlocks
public void recycleByteBlocks(byte[][] blocks,
int start,
int end)
- Specified by:
recycleByteBlocks
in class ByteBlockPool.Allocator
numBufferedBlocks
public int numBufferedBlocks()
- Returns:
- the number of currently buffered blocks
bytesUsed
public long bytesUsed()
- Returns:
- the number of bytes currently allocated by this
ByteBlockPool.Allocator
maxBufferedBlocks
public int maxBufferedBlocks()
- Returns:
- the maximum number of buffered byte blocks
freeBlocks
public int freeBlocks(int num)
- Removes the given number of byte blocks from the buffer if possible.
- Parameters:
num
- the number of byte blocks to remove
- Returns:
- the number of actually removed buffers