org.apache.hadoop.io
Class ElasticByteBufferPool
java.lang.Object
org.apache.hadoop.io.ElasticByteBufferPool
- All Implemented Interfaces:
- ByteBufferPool
@InterfaceAudience.Public
@InterfaceStability.Stable
public final class ElasticByteBufferPool
- extends Object
- implements ByteBufferPool
This is a simple ByteBufferPool which just creates ByteBuffers as needed.
It also caches ByteBuffers after they're released. It will always return
the smallest cached buffer with at least the capacity you request.
We don't try to do anything clever here like try to limit the maximum cache
size.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ElasticByteBufferPool
public ElasticByteBufferPool()
getBuffer
public ByteBuffer getBuffer(boolean direct,
int length)
- Description copied from interface:
ByteBufferPool
- Get a new direct ByteBuffer. The pool can provide this from
removing a buffer from its internal cache, or by allocating a
new buffer.
- Specified by:
getBuffer
in interface ByteBufferPool
- Parameters:
direct
- Whether the buffer should be direct.length
- The minimum length the buffer will have.
- Returns:
- A new ByteBuffer. This ByteBuffer must be direct.
Its capacity can be less than what was requested, but
must be at least 1 byte.
putBuffer
public void putBuffer(ByteBuffer buffer)
- Description copied from interface:
ByteBufferPool
- Release a buffer back to the pool.
The pool may choose to put this buffer into its cache.
- Specified by:
putBuffer
in interface ByteBufferPool
- Parameters:
buffer
- a direct bytebuffer
Copyright © 2014 Apache Software Foundation. All Rights Reserved.