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
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 |
Computing file changes ...