Revision 7c1c8ce5acc882fa0496b71b9a9813d1dff47e0f authored by Andrew Kryczka on 05 May 2017, 00:40:29 UTC, committed by Facebook Github Bot on 05 May 2017, 00:43:22 UTC
Summary:
When user doesn't set a limit on compaction output file size, let's use the sum of the input files' sizes. This will avoid passing UINT64_MAX as fallocate()'s length. Reported in #2249.

Test setup:
- command: `TEST_TMPDIR=/data/rocksdb-test/ strace -e fallocate ./db_compaction_test --gtest_filter=DBCompactionTest.ManualCompactionUnknownOutputSize`
- filesystem: xfs

before this diff:
`fallocate(10, 01, 0, 1844674407370955160) = -1 ENOSPC (No space left on device)`

after this diff:
`fallocate(10, 01, 0, 1977)              = 0`
Closes https://github.com/facebook/rocksdb/pull/2252

Differential Revision: D5007275

Pulled By: ajkr

fbshipit-source-id: 4491404a6ae8a41328aede2e2d6f4d9ac3e38880
1 parent a45e98a
History
File Mode Size
cf_options.cc -rw-r--r-- 7.7 KB
cf_options.h -rw-r--r-- 7.6 KB
db_options.cc -rw-r--r-- 12.3 KB
db_options.h -rw-r--r-- 2.9 KB
options.cc -rw-r--r-- 25.9 KB
options_helper.cc -rw-r--r-- 52.4 KB
options_helper.h -rw-r--r-- 35.0 KB
options_parser.cc -rw-r--r-- 28.8 KB
options_parser.h -rw-r--r-- 5.0 KB
options_sanity_check.cc -rw-r--r-- 1.2 KB
options_sanity_check.h -rw-r--r-- 1.8 KB
options_settable_test.cc -rw-r--r-- 20.1 KB
options_test.cc -rw-r--r-- 62.0 KB

back to top