Revision c384c08a4f699ded6d4e7e66432e464abc88eff4 authored by Ziyue Yang on 12 May 2020, 16:25:21 UTC, committed by Facebook GitHub Bot on 12 May 2020, 16:27:35 UTC
Summary:
Currently there is no check for whether BlockBasedTableBuilder will expose
compression error status if compression fails during the table building.
This commit adds fake faulting compressors and a unit test to test such
cases.

This check finds 5 bugs, and this commit also fixes them:

1. Not handling compression failure well in
   BlockBasedTableBuilder::BGWorkWriteRawBlock.
2. verify_compression failing in BlockBasedTableBuilder when used with ZSTD.
3. Wrongly passing the same reference of block contents to
   BlockBasedTableBuilder::CompressAndVerifyBlock in parallel compression.
4. Wrongly setting block_rep->first_key_in_next_block to nullptr in
   BlockBasedTableBuilder::EnterUnbuffered when there are still incoming data
   blocks.
5. Not maintaining variables for compression ratio estimation and first_block
   in BlockBasedTableBuilder::EnterUnbuffered.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/6709

Reviewed By: ajkr

Differential Revision: D21236254

fbshipit-source-id: 101f6e62b2bac2b7be72be198adf93cd32a1ff46
1 parent 3f21807
History
File Mode Size
benchmark
crossbuild
jmh
rocksjni
samples
src
CMakeLists.txt -rw-r--r-- 20.8 KB
HISTORY-JAVA.md -rw-r--r-- 3.2 KB
Makefile -rw-r--r-- 12.1 KB
RELEASE.md -rw-r--r-- 2.5 KB
jdb_bench.sh -rwxr-xr-x 460 bytes
rocksjni.pom -rw-r--r-- 6.3 KB

back to top