rocksdb/port/win
Dmitri Smirnov f4b72d7056 Provide a way to override windows memory allocator with jemalloc for ZSTD
Summary:
Windows does not have LD_PRELOAD mechanism to override all memory allocation functions and ZSTD makes use of C-tuntime calloc. During flushes and compactions default system allocator fragments and the system slows down considerably.

For builds with jemalloc we employ an advanced ZSTD context creation API that re-directs memory allocation to jemalloc. To reduce the cost of context creation on each block we cache ZSTD context within the block based table builder while a new SST file is being built, this will help all platform builds including those w/o jemalloc. This avoids system allocator fragmentation and improves the performance.

The change does not address random reads and currently on Windows reads with ZSTD regress as compared with SNAPPY compression.
Closes https://github.com/facebook/rocksdb/pull/3838

Differential Revision: D8229794

Pulled By: miasantreble

fbshipit-source-id: 719b622ab7bf4109819bc44f45ec66f0dd3ee80d
2018-06-04 12:12:48 -07:00
..
env_default.cc Provide a way to override windows memory allocator with jemalloc for ZSTD 2018-06-04 12:12:48 -07:00
env_win.cc Catchup with posix features 2018-05-24 15:13:04 -07:00
env_win.h Catchup with posix features 2018-05-24 15:13:04 -07:00
io_win.cc Catchup with posix features 2018-05-24 15:13:04 -07:00
io_win.h Catchup with posix features 2018-05-24 15:13:04 -07:00
port_win.cc Windows cumulative patch 2018-03-06 11:57:43 -08:00
port_win.h Explictly fail writes if key or value is not smaller than 4GB 2018-02-09 14:57:54 -08:00
win_jemalloc.cc Provide a way to override windows memory allocator with jemalloc for ZSTD 2018-06-04 12:12:48 -07:00
win_logger.cc Windows cumulative patch 2018-03-06 11:57:43 -08:00
win_logger.h Windows cumulative patch 2018-03-06 11:57:43 -08:00
win_thread.cc CloseHandle docs says that the return is non-zero, does not say TRUE(1) 2018-03-20 18:43:02 -07:00
win_thread.h Fix a race condition in WindowsThread (port::Thread) 2017-12-07 13:42:53 -08:00
xpress_win.cc Enable cacheline_aligned_alloc() to allocate from jemalloc if enabled. 2017-10-27 13:27:12 -07:00
xpress_win.h Change RocksDB License 2017-07-15 16:11:23 -07:00