swh:1:snp:5115096b921df712aeb2a08114fede57fb3331fb
Revision 9e729390298c25adbd1cbf19948a5e4a882d6066 authored by Aaron Gao on 07 April 2017, 01:08:53 UTC, committed by Facebook Github Bot on 07 April 2017, 01:25:03 UTC
Summary:
In RocksDB, we sometimes preallocate the estimated space for a file to have better perf with fallocate (if supported). Usually it is a little bit bigger than the real resulting file size. At this time, we have to let the Filesystem reclaim the space not used.

Ideally, calling ftruncate to truncate the file to its real size should be enough. HOWEVER, it isn't on tmpfs, which we witness in our case, with some buggy kernel version. ftruncate a file with preallocated space doesn't change number of the blocks used by the file, which means the space not used by the file is not returned to the filesystems. So in this case we need fallocate with FALLOC_FL_PUNCH_HOLE to explicitly reclaim the used blocks. It is a hack to cope with the kernel bug and usually we should not need it.
Closes https://github.com/facebook/rocksdb/pull/2102

Differential Revision: D4848934

Pulled By: lightmark

fbshipit-source-id: f1b40b5
1 parent 343b59d
History
Tip revision: 19076c95aa2bcee55c26fcf0960cc844ad86ee9c authored by Levi Tamasi on 21 January 2021, 22:18:25 UTC
Update HISTORY.md for PR 7888 (#7890)
Tip revision: 19076c9
File Mode Size
arcanist_util
buckifier
build_tools
cache
cmake
coverage
db
docs
env
examples
hdfs
include
java
memtable
monitoring
options
port
table
third-party
tools
util
utilities
.arcconfig -rw-r--r-- 566 bytes
.clang-format -rw-r--r-- 138 bytes
.gitignore -rw-r--r-- 708 bytes
.travis.yml -rw-r--r-- 2.1 KB
AUTHORS -rw-r--r-- 247 bytes
CMakeLists.txt -rw-r--r-- 26.4 KB
CONTRIBUTING.md -rw-r--r-- 733 bytes
DEFAULT_OPTIONS_HISTORY.md -rw-r--r-- 1.4 KB
DUMP_FORMAT.md -rw-r--r-- 763 bytes
HISTORY.md -rw-r--r-- 42.1 KB
INSTALL.md -rw-r--r-- 4.7 KB
LANGUAGE-BINDINGS.md -rw-r--r-- 712 bytes
LICENSE -rw-r--r-- 1.6 KB
Makefile -rw-r--r-- 53.1 KB
PATENTS -rw-r--r-- 1.9 KB
README.md -rw-r--r-- 1.4 KB
ROCKSDB_LITE.md -rw-r--r-- 1.0 KB
TARGETS -rw-r--r-- 17.8 KB
USERS.md -rw-r--r-- 4.9 KB
Vagrantfile -rw-r--r-- 877 bytes
WINDOWS_PORT.md -rw-r--r-- 12.5 KB
appveyor.yml -rw-r--r-- 416 bytes
src.mk -rw-r--r-- 24.0 KB
thirdparty.inc -rw-r--r-- 7.8 KB

README.md

back to top