This is an automated email from the ASF dual-hosted git repository.
openinx pushed a change to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git.
from 974e108 HBASE-22617 Recovered WAL directories not getting cleaned up
(#330)
add c19592a HBASE-21916 Abstract an ByteBuffAllocator to allocate/free
ByteBuffer in ByteBufferPool
add 259f861 HBASE-21917 Make the HFileBlock#validateChecksum can accept
ByteBuff as an input.
add 287e014 HBASE-21917 Make the HFileBlock#validateChecksum can accept
ByteBuff as an input. (addendum)
add f97f6e3 HBASE-22016 Rewrite the block reading methods by using
hbase.nio.ByteBuff
add 0d294d2 HBASE-22005 Use ByteBuff's refcnt to track the life cycle of
data block
add 081dc03 HBASE-22127 Ensure that the block cached in the LRUBlockCache
offheap is allocated from heap
add bd8260c HBASE-22159 ByteBufferIOEngine should support write off-heap
ByteBuff to the bufferArray
add 92fc520 HBASE-20894 Use proto for BucketCache persistence
add fc46013 HBASE-21957 Unify refCount of BucketEntry and refCount of
hbase.nio.ByteBuff into one
add bb40caf HBASE-22211 Remove the returnBlock method because we can just
call HFileBlock#release directly
add 39a6a35 HBASE-21937 Make the Compression#decompress can accept
ByteBuff as input
add b3a01b5 HBASE-22122 Change to release mob hfile's block after rpc
server shipped response to client
add d7009d2 HBASE-21921 Notify users if the ByteBufAllocator is always
allocating ByteBuffers from heap which means the increacing GC pressure
add 02c528a HBASE-22090 The HFileBlock#CacheableDeserializer should pass
ByteBuffAllocator to the newly created HFileBlock
add b003607 HBASE-22412 Improve the metrics in ByteBuffAllocator
add 9e5fc2b HBASE-22435 Add a UT to address the HFileBlock#heapSize() in
TestHeapSize
add 1f5cf41 HBASE-22422 Retain an ByteBuff with refCnt=0 when getBlock
from LRUCache (#242)
add 915d7b2 HBASE-22463 Some paths in HFileScannerImpl did not consider
block#release which will exhaust the ByteBuffAllocator (#257)
add 4dd728d HBASE-22483 It's better to use 65KB as the default buffer
size in ByteBuffAllocator (#279)
add 5ff317f HBASE-22504 Optimize the MultiByteBuff#get(ByteBuffer,
offset, len)
add 3199175 HBASE-22491 Separate the heap HFileBlock and offheap
HFileBlock because the heap block won't need refCnt and save into prevBlocks
list before shipping (#268)
add 4f1b5ab HBASE-22531 The HFileReaderImpl#shouldUseHeap return the
incorrect true when disabled BlockCache (#304)
add d34c4a0 HBASE-22598 Deprecated the
hbase.ipc.server.reservoir.initial.buffer.size &
hbase.ipc.server.reservoir.initial.max for HBase2.x compatibility (#318)
add af0e23c HBASE-22547 Align the config keys and add document for
offheap read in HBase Book. (#301)
new 6a3aa78 HBASE-22612 Address the final overview reviewing comments of
HBASE-21879
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../apache/hadoop/hbase/ipc/CellBlockBuilder.java | 9 +-
hbase-common/pom.xml | 4 +
.../apache/hadoop/hbase/io/ByteBuffAllocator.java | 393 +++++++++++
.../hbase/io/ByteBufferListOutputStream.java | 40 +-
.../org/apache/hadoop/hbase/io/ByteBufferPool.java | 155 -----
.../hadoop/hbase/io/compress/Compression.java | 51 +-
.../hbase/io/encoding/CopyKeyDataBlockEncoder.java | 2 +-
.../hbase/io/encoding/DiffKeyDeltaEncoder.java | 2 +-
.../hbase/io/encoding/FastDiffDeltaEncoder.java | 2 +-
.../encoding/HFileBlockDefaultDecodingContext.java | 11 +-
.../hbase/io/encoding/PrefixKeyDeltaEncoder.java | 2 +-
.../hadoop/hbase/io/encoding/RowIndexSeekerV1.java | 2 +-
.../apache/hadoop/hbase/io/hfile/HFileContext.java | 17 +-
.../apache/hadoop/hbase/io/util/BlockIOUtils.java | 254 +++++++
.../java/org/apache/hadoop/hbase/nio/ByteBuff.java | 172 +++--
.../hadoop/hbase/nio/HBaseReferenceCounted.java | 39 +-
.../org/apache/hadoop/hbase/nio/MultiByteBuff.java | 129 +++-
.../java/org/apache/hadoop/hbase/nio/RefCnt.java | 63 ++
.../apache/hadoop/hbase/nio/SingleByteBuff.java | 92 ++-
.../apache/hadoop/hbase/util/ByteBufferArray.java | 404 +++++------
.../apache/hadoop/hbase/util/ByteBufferUtils.java | 56 +-
.../hadoop/hbase/io/TestByteBuffAllocator.java | 370 ++++++++++
.../hbase/io/TestByteBufferListOutputStream.java | 18 +-
.../apache/hadoop/hbase/io/TestByteBufferPool.java | 67 --
.../apache/hadoop/hbase/nio/TestMultiByteBuff.java | 29 +-
.../hadoop/hbase/util/TestByteBufferArray.java | 185 +++--
.../hadoop/hbase/io/hfile/MemcachedBlockCache.java | 7 +-
.../regionserver/MetricsRegionServerSource.java | 15 +
.../regionserver/MetricsRegionServerWrapper.java | 28 +-
.../MetricsRegionServerSourceImpl.java | 17 +-
.../src/main/protobuf/BucketCacheEntry.proto | 79 +++
.../hbase/tmpl/regionserver/RSStatusTmpl.jamon | 3 +-
.../tmpl/regionserver/ServerMetricsTmpl.jamon | 30 +
.../apache/hadoop/hbase/io/hfile/BlockCache.java | 13 -
.../hadoop/hbase/io/hfile/BlockCacheUtil.java | 8 +-
.../apache/hadoop/hbase/io/hfile/CacheConfig.java | 21 +-
.../apache/hadoop/hbase/io/hfile/Cacheable.java | 31 +-
.../hbase/io/hfile/CacheableDeserializer.java | 31 +-
.../io/hfile/CacheableDeserializerIdManager.java | 34 +-
.../apache/hadoop/hbase/io/hfile/ChecksumUtil.java | 152 +++--
.../hadoop/hbase/io/hfile/CombinedBlockCache.java | 11 +-
.../hadoop/hbase/io/hfile/CompoundBloomFilter.java | 10 +-
.../hbase/io/hfile/ExclusiveMemHFileBlock.java | 69 ++
.../org/apache/hadoop/hbase/io/hfile/HFile.java | 6 -
.../apache/hadoop/hbase/io/hfile/HFileBlock.java | 746 ++++++++++-----------
.../hadoop/hbase/io/hfile/HFileBlockBuilder.java | 114 ++++
.../hadoop/hbase/io/hfile/HFileBlockIndex.java | 41 +-
.../hadoop/hbase/io/hfile/HFileReaderImpl.java | 304 +++++----
.../hadoop/hbase/io/hfile/LruBlockCache.java | 88 ++-
.../hadoop/hbase/io/hfile/SharedMemHFileBlock.java | 46 ++
.../hadoop/hbase/io/hfile/TinyLfuBlockCache.java | 15 +-
.../hbase/io/hfile/bucket/BucketAllocator.java | 1 -
.../hadoop/hbase/io/hfile/bucket/BucketCache.java | 694 +++++++++----------
.../hadoop/hbase/io/hfile/bucket/BucketEntry.java | 242 +++++++
.../hbase/io/hfile/bucket/BucketProtoUtils.java | 191 ++++++
.../hbase/io/hfile/bucket/ByteBufferIOEngine.java | 114 ++--
.../hbase/io/hfile/bucket/CachedEntryQueue.java | 23 +-
.../hfile/bucket/ExclusiveMemoryMmapIOEngine.java | 21 +-
.../hadoop/hbase/io/hfile/bucket/FileIOEngine.java | 42 +-
.../hbase/io/hfile/bucket/FileMmapIOEngine.java | 13 +-
.../hadoop/hbase/io/hfile/bucket/IOEngine.java | 14 +-
.../io/hfile/bucket/SharedMemoryMmapIOEngine.java | 16 +-
.../hbase/io/hfile/bucket/UniqueIndexMap.java | 56 --
.../bucket/UnsafeSharedMemoryBucketEntry.java | 81 ---
.../hadoop/hbase/ipc/NettyRpcFrameDecoder.java | 2 +-
.../apache/hadoop/hbase/ipc/NettyRpcServer.java | 2 +-
.../apache/hadoop/hbase/ipc/NettyServerCall.java | 12 +-
.../hadoop/hbase/ipc/NettyServerRpcConnection.java | 9 +-
.../org/apache/hadoop/hbase/ipc/RpcServer.java | 101 +--
.../hadoop/hbase/ipc/RpcServerInterface.java | 7 +
.../org/apache/hadoop/hbase/ipc/ServerCall.java | 18 +-
.../apache/hadoop/hbase/ipc/SimpleRpcServer.java | 2 +-
.../apache/hadoop/hbase/ipc/SimpleServerCall.java | 15 +-
.../hbase/ipc/SimpleServerRpcConnection.java | 26 +-
.../hadoop/hbase/master/MasterRpcServices.java | 5 +-
.../hadoop/hbase/mob/DefaultMobStoreCompactor.java | 28 +-
.../java/org/apache/hadoop/hbase/mob/MobCell.java | 74 ++
.../java/org/apache/hadoop/hbase/mob/MobFile.java | 21 +-
.../hadoop/hbase/regionserver/HMobStore.java | 60 +-
.../apache/hadoop/hbase/regionserver/HStore.java | 3 +-
.../MetricsRegionServerWrapperImpl.java | 33 +-
.../hadoop/hbase/regionserver/MobStoreScanner.java | 41 +-
.../hadoop/hbase/regionserver/RSRpcServices.java | 5 +-
.../regionserver/RegionServicesForStores.java | 18 +
.../regionserver/ReversedMobStoreScanner.java | 47 +-
.../hadoop/hbase/regionserver/StoreFileReader.java | 6 +-
.../hbase/regionserver/StoreFileScanner.java | 12 -
.../client/TestAsyncTableGetMultiThreaded.java | 4 +-
.../hbase/client/TestBlockEvictionFromClient.java | 51 +-
.../hbase/client/TestServerLoadDurability.java | 8 +-
.../org/apache/hadoop/hbase/io/TestHeapSize.java | 26 +
.../io/encoding/TestLoadAndSwitchEncodeOnDisk.java | 5 +-
.../hadoop/hbase/io/hfile/CacheTestUtils.java | 122 +---
...ckPositionalRead.java => TestBlockIOUtils.java} | 123 +++-
.../hadoop/hbase/io/hfile/TestCacheConfig.java | 22 +-
.../hadoop/hbase/io/hfile/TestCacheOnWrite.java | 34 +-
.../hbase/io/hfile/TestCachedBlockQueue.java | 5 -
.../apache/hadoop/hbase/io/hfile/TestChecksum.java | 116 ++--
.../hbase/io/hfile/TestCombinedBlockCache.java | 17 +
.../apache/hadoop/hbase/io/hfile/TestHFile.java | 146 +++-
.../hadoop/hbase/io/hfile/TestHFileBlock.java | 197 ++++--
.../hadoop/hbase/io/hfile/TestHFileBlockIndex.java | 11 +-
.../hbase/io/hfile/TestHFileDataBlockEncoder.java | 18 +-
.../hadoop/hbase/io/hfile/TestHFileEncryption.java | 6 +-
.../hfile/TestHFileScannerImplReferenceCount.java | 450 +++++++++++++
.../hadoop/hbase/io/hfile/TestHFileWriterV3.java | 11 +-
.../io/hfile/TestLazyDataBlockDecompression.java | 2 +-
.../hadoop/hbase/io/hfile/TestLruBlockCache.java | 91 ++-
.../apache/hadoop/hbase/io/hfile/TestPrefetch.java | 14 +-
.../hbase/io/hfile/TestTinyLfuBlockCache.java | 5 -
.../hbase/io/hfile/bucket/TestBucketCache.java | 156 +++--
.../io/hfile/bucket/TestBucketCacheRefCnt.java | 277 ++++++++
.../io/hfile/bucket/TestBucketWriterThread.java | 14 +-
.../io/hfile/bucket/TestByteBufferIOEngine.java | 122 ++--
.../bucket/TestExclusiveMemoryMmapEngine.java | 37 +-
.../hbase/io/hfile/bucket/TestFileIOEngine.java | 40 +-
.../hadoop/hbase/io/hfile/bucket/TestRAMCache.java | 127 ++++
.../org/apache/hadoop/hbase/ipc/TestRpcServer.java | 144 ----
.../hadoop/hbase/master/AbstractTestDLS.java | 29 +-
.../apache/hadoop/hbase/mob/TestCachedMobFile.java | 19 +-
.../org/apache/hadoop/hbase/mob/TestMobFile.java | 26 +-
.../hbase/mob/TestMobWithByteBuffAllocator.java | 116 ++++
.../MetricsRegionServerWrapperStub.java | 25 +
.../hadoop/hbase/regionserver/TestHMobStore.java | 19 +-
.../hbase/regionserver/TestHeapMemoryManager.java | 4 -
.../hbase/regionserver/TestRSStatusServlet.java | 29 +-
.../regionserver/TestSecureBulkLoadManager.java | 3 +-
src/main/asciidoc/_chapters/architecture.adoc | 48 --
.../asciidoc/_chapters/offheap_read_write.adoc | 186 +++++
src/main/asciidoc/book.adoc | 1 +
.../resources/images/bytebuff-allocator-stats.png | Bin 0 -> 64120 bytes
src/site/resources/images/offheap-overview.png | Bin 0 -> 64687 bytes
132 files changed, 6321 insertions(+), 3127 deletions(-)
create mode 100644
hbase-common/src/main/java/org/apache/hadoop/hbase/io/ByteBuffAllocator.java
delete mode 100644
hbase-common/src/main/java/org/apache/hadoop/hbase/io/ByteBufferPool.java
create mode 100644
hbase-common/src/main/java/org/apache/hadoop/hbase/io/util/BlockIOUtils.java
copy
hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/CounterImpl.java
=>
hbase-common/src/main/java/org/apache/hadoop/hbase/nio/HBaseReferenceCounted.java
(58%)
create mode 100644
hbase-common/src/main/java/org/apache/hadoop/hbase/nio/RefCnt.java
create mode 100644
hbase-common/src/test/java/org/apache/hadoop/hbase/io/TestByteBuffAllocator.java
delete mode 100644
hbase-common/src/test/java/org/apache/hadoop/hbase/io/TestByteBufferPool.java
create mode 100644
hbase-protocol-shaded/src/main/protobuf/BucketCacheEntry.proto
create mode 100644
hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/ExclusiveMemHFileBlock.java
create mode 100644
hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlockBuilder.java
create mode 100644
hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/SharedMemHFileBlock.java
create mode 100644
hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketEntry.java
create mode 100644
hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketProtoUtils.java
delete mode 100644
hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/UniqueIndexMap.java
delete mode 100644
hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/UnsafeSharedMemoryBucketEntry.java
create mode 100644
hbase-server/src/main/java/org/apache/hadoop/hbase/mob/MobCell.java
rename
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/{TestHFileBlockPositionalRead.java
=> TestBlockIOUtils.java} (53%)
create mode 100644
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileScannerImplReferenceCount.java
create mode 100644
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/bucket/TestBucketCacheRefCnt.java
create mode 100644
hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/bucket/TestRAMCache.java
delete mode 100644
hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestRpcServer.java
create mode 100644
hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobWithByteBuffAllocator.java
create mode 100644 src/main/asciidoc/_chapters/offheap_read_write.adoc
create mode 100644 src/site/resources/images/bytebuff-allocator-stats.png
create mode 100644 src/site/resources/images/offheap-overview.png