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
win
README -rw-r--r-- 405 bytes
jemalloc_helper.h -rw-r--r-- 3.5 KB
lang.h -rw-r--r-- 536 bytes
likely.h -rw-r--r-- 690 bytes
malloc.h -rw-r--r-- 656 bytes
port.h -rw-r--r-- 834 bytes
port_dirent.h -rw-r--r-- 1.0 KB
port_example.h -rw-r--r-- 3.5 KB
port_posix.cc -rw-r--r-- 7.1 KB
port_posix.h -rw-r--r-- 6.0 KB
stack_trace.cc -rw-r--r-- 4.3 KB
stack_trace.h -rw-r--r-- 891 bytes
sys_time.h -rw-r--r-- 1.2 KB
util_logger.h -rw-r--r-- 823 bytes
xpress.h -rw-r--r-- 687 bytes

README

back to top