HBASE-27386 Use encoded size for calculating compression ratio in block size predicator (#4795)

Signed-off-by: Ankit Singhal <ankit@apache.org>
This commit is contained in:
Wellington Ramos Chevreuil 2022-09-23 10:33:27 +01:00 committed by GitHub
parent cc4268a7d2
commit da87a8e70c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 3 deletions

View File

@ -933,7 +933,7 @@ public class HFileBlock implements Cacheable {
// We need to cache the unencoded/uncompressed size before changing the block state
int rawBlockSize = 0;
if (this.getEncodingState() != null) {
rawBlockSize = blockSizeWritten();
rawBlockSize = encodedBlockSizeWritten();
}
// We need to set state before we can package the block up for cache-on-write. In a way, the
// block is ready, but not yet encoded or compressed.

View File

@ -1220,8 +1220,8 @@ public class TestHStoreFile {
public void testDataBlockSizeCompressed() throws Exception {
conf.set(BLOCK_COMPRESSED_SIZE_PREDICATOR,
PreviousBlockCompressionRatePredicator.class.getName());
testDataBlockSizeWithCompressionRatePredicator(11,
(s, c) -> (c > 1 && c < 11) ? s >= BLOCKSIZE_SMALL * 10 : true);
testDataBlockSizeWithCompressionRatePredicator(12,
(s, c) -> (c > 2 && c < 11) ? s >= BLOCKSIZE_SMALL * 10 : true);
}
@Test