Package org.apache.hadoop.hbase.io.hfile
Class ExclusiveMemHFileBlock
java.lang.Object
org.apache.hadoop.hbase.io.hfile.HFileBlock
org.apache.hadoop.hbase.io.hfile.ExclusiveMemHFileBlock
- All Implemented Interfaces:
HeapSize,Cacheable,HBaseReferenceCounted,org.apache.hbase.thirdparty.io.netty.util.ReferenceCounted
The
ByteBuffAllocator won't allocate pooled heap ByteBuff now; at the same time,
if allocate an off-heap ByteBuff from allocator, then it must be a pooled one. That's to
say, an exclusive memory HFileBlock would must be an heap block and a shared memory HFileBlock
would must be an off-heap block.
The exclusive memory HFileBlock will do nothing when calling retain or release methods, because its memory will be garbage collected by JVM, even if its reference count decrease to zero, we can do nothing for the de-allocating.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.hadoop.hbase.io.hfile.HFileBlock
HFileBlock.BlockDeserializer, HFileBlock.BlockIterator, HFileBlock.BlockWritable, HFileBlock.FSReader, HFileBlock.FSReaderImpl, HFileBlock.Header, HFileBlock.Writer -
Field Summary
Fields inherited from class org.apache.hadoop.hbase.io.hfile.HFileBlock
BLOCK_DESERIALIZER, BLOCK_METADATA_SPACE, CHECKSUM_SIZE, CHECKSUM_VERIFICATION_NUM_IO_THRESHOLD, DONT_FILL_HEADER, DUMMY_HEADER_NO_CHECKSUM, FILL_HEADER, FIXED_OVERHEAD, MULTI_BYTE_BUFFER_HEAP_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionExclusiveMemHFileBlock(BlockType blockType, int onDiskSizeWithoutHeader, int uncompressedSizeWithoutHeader, long prevBlockOffset, ByteBuff buf, boolean fillHeader, long offset, int nextBlockOnDiskSize, int onDiskDataSizeWithHeader, HFileContext fileContext, ByteBuffAllocator alloc) -
Method Summary
Modifier and TypeMethodDescriptionbooleanWill be override bySharedMemHFileBlockorExclusiveMemHFileBlock.intrefCnt()Reference count of this Cacheable.booleanrelease()CallByteBuff.release()to decrease the reference count, if no other reference, it will return back theByteBuffertoByteBuffAllocatorretain()Increase its reference count, and only when no reference we can free the object's memory.Methods inherited from class org.apache.hadoop.hbase.io.hfile.HFileBlock
createFromBuff, deepCloneOnHeap, equals, getBlockType, getBufferReadOnly, getBufferWithoutHeader, getByteBuffAllocator, getBytesPerChecksum, getByteStream, getChecksumType, getDataBlockEncoding, getDataBlockEncodingId, getDeserializer, getDummyHeaderForVersion, getHFileContext, getMetaData, getNextBlockOnDiskSize, getOffset, getOnDiskDataSizeWithHeader, getOnDiskSizeWithHeader, getOnDiskSizeWithoutHeader, getPrevBlockOffset, getSerializedLength, getUncompressedSizeWithoutHeader, hashCode, headerSize, headerSize, heapSize, isUnpacked, sanityCheck, sanityCheckUncompressed, serialize, toString, toStringHeader, totalChecksumBytes, touch, touch, unpackMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.hadoop.hbase.nio.HBaseReferenceCounted
release, retain
-
Constructor Details
-
ExclusiveMemHFileBlock
ExclusiveMemHFileBlock(BlockType blockType, int onDiskSizeWithoutHeader, int uncompressedSizeWithoutHeader, long prevBlockOffset, ByteBuff buf, boolean fillHeader, long offset, int nextBlockOnDiskSize, int onDiskDataSizeWithHeader, HFileContext fileContext, ByteBuffAllocator alloc)
-
-
Method Details
-
refCnt
Description copied from interface:CacheableReference count of this Cacheable.- Specified by:
refCntin interfaceCacheable- Specified by:
refCntin interfaceorg.apache.hbase.thirdparty.io.netty.util.ReferenceCounted- Overrides:
refCntin classHFileBlock
-
retain
Description copied from interface:CacheableIncrease its reference count, and only when no reference we can free the object's memory.- Specified by:
retainin interfaceCacheable- Specified by:
retainin interfaceorg.apache.hbase.thirdparty.io.netty.util.ReferenceCounted- Overrides:
retainin classHFileBlock
-
release
Description copied from class:HFileBlockCallByteBuff.release()to decrease the reference count, if no other reference, it will return back theByteBuffertoByteBuffAllocator- Specified by:
releasein interfaceCacheable- Specified by:
releasein interfaceorg.apache.hbase.thirdparty.io.netty.util.ReferenceCounted- Overrides:
releasein classHFileBlock
-