https://github.com/facebook/rocksdb
Revision 36300fbbe3a7fde402152e4a57bbf5cda614d53c authored by Dmitri Smirnov on 01 February 2016, 21:14:37 UTC, committed by Dmitri Smirnov on 01 February 2016, 21:14:37 UTC
This change impacts only non-buffered I/O on Windows. Currently, there is a buffer per RandomAccessFile instance that is protected by a lock. The reason we maintain the buffer is non-buffered I/O requires an aligned buffer to work. XPerf traces demonstrate that we accumulate a considerable wait time while waiting for that lock. This change enables to set random access buffer size to zero which would indicate a per request allocation. We are expecting that allocation expense would be much less than I/O costs plus wait time due to the fact that the memory heap would tend to re-use page aligned allocations especially with the use of Jemalloc. This change does not affect buffer use as a read_ahead_buffer for compaction purposes.
1 parent 3b2a1dd
Tip revision: 36300fbbe3a7fde402152e4a57bbf5cda614d53c authored by Dmitri Smirnov on 01 February 2016, 21:14:37 UTC
Enable per-request buffer allocation in RandomAccessFile
Enable per-request buffer allocation in RandomAccessFile
Tip revision: 36300fb
File | Mode | Size |
---|---|---|
dump | ||
rdb | ||
Dockerfile | -rw-r--r-- | 81 bytes |
auto_sanity_test.sh | -rwxr-xr-x | 2.6 KB |
benchmark.sh | -rwxr-xr-x | 11.5 KB |
benchmark_leveldb.sh | -rwxr-xr-x | 5.1 KB |
check_format_compatible.sh | -rwxr-xr-x | 3.4 KB |
db_crashtest.py | -rw-r--r-- | 12.2 KB |
db_repl_stress.cc | -rw-r--r-- | 4.5 KB |
db_sanity_test.cc | -rw-r--r-- | 8.3 KB |
db_stress.cc | -rw-r--r-- | 76.4 KB |
dbench_monitor | -rwxr-xr-x | 2.6 KB |
generate_random_db.sh | -rwxr-xr-x | 726 bytes |
ldb.cc | -rw-r--r-- | 594 bytes |
ldb_cmd.cc | -rw-r--r-- | 69.6 KB |
ldb_cmd.h | -rw-r--r-- | 23.3 KB |
ldb_cmd_execute_result.h | -rw-r--r-- | 1.6 KB |
ldb_cmd_test.cc | -rw-r--r-- | 1.6 KB |
ldb_test.py | -rw-r--r-- | 23.6 KB |
ldb_tool.cc | -rw-r--r-- | 4.1 KB |
pflag | -rwxr-xr-x | 4.0 KB |
reduce_levels_test.cc | -rw-r--r-- | 5.2 KB |
rocksdb_dump_test.sh | -rwxr-xr-x | 325 bytes |
run_flash_bench.sh | -rwxr-xr-x | 11.7 KB |
run_leveldb.sh | -rwxr-xr-x | 6.2 KB |
sample-dump.dmp | -rw-r--r-- | 100 bytes |
sst_dump.cc | -rw-r--r-- | 603 bytes |
sst_dump_test.cc | -rw-r--r-- | 6.2 KB |
sst_dump_tool.cc | -rw-r--r-- | 17.4 KB |
sst_dump_tool_imp.h | -rw-r--r-- | 2.6 KB |
verify_random_db.sh | -rwxr-xr-x | 710 bytes |
write_stress.cc | -rw-r--r-- | 10.7 KB |
write_stress_runner.py | -rw-r--r-- | 2.2 KB |
Computing file changes ...