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
cache_bench.cc -rw-r--r-- 7.6 KB
cache_test.cc -rw-r--r-- 20.1 KB
clock_cache.cc -rw-r--r-- 26.0 KB
clock_cache.h -rw-r--r-- 636 bytes
lru_cache.cc -rw-r--r-- 13.6 KB
lru_cache.h -rw-r--r-- 9.1 KB
lru_cache_test.cc -rw-r--r-- 5.0 KB
sharded_cache.cc -rw-r--r-- 4.9 KB
sharded_cache.h -rw-r--r-- 4.2 KB

back to top