rocksdb/utilities/blob_db
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
..
blob_compaction_filter.cc Blob DB: Improve FIFO eviction 2018-03-06 11:57:42 -08:00
blob_compaction_filter.h Blob DB: Improve FIFO eviction 2018-03-06 11:57:42 -08:00
blob_db_impl.cc Provide a way to override windows memory allocator with jemalloc for ZSTD 2018-06-04 12:12:48 -07:00
blob_db_impl.h Blob DB: Improve FIFO eviction 2018-03-06 11:57:42 -08:00
blob_db_iterator.h Change and clarify the relationship between Valid(), status() and Seek*() for all iterators. Also fix some bugs 2018-05-17 02:56:56 -07:00
blob_db_listener.h Blob DB: Improve FIFO eviction 2018-03-06 11:57:42 -08:00
blob_db_test.cc fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
blob_db.cc Blob DB: Improve FIFO eviction 2018-03-06 11:57:42 -08:00
blob_db.h Blob DB: Improve FIFO eviction 2018-03-06 11:57:42 -08:00
blob_dump_tool.cc Provide a way to override windows memory allocator with jemalloc for ZSTD 2018-06-04 12:12:48 -07:00
blob_dump_tool.h Blob DB: blob_dump to show uncompressed values 2018-04-05 11:12:16 -07:00
blob_file.cc Blob DB: remove existing garbage collection implementation 2018-03-02 12:57:23 -08:00
blob_file.h Blob DB: remove existing garbage collection implementation 2018-03-02 12:57:23 -08:00
blob_index.h Blob DB: Inline small values in base DB 2017-10-26 12:30:54 -07:00
blob_log_format.cc BlobDB: Remove the need to get sequence number per write 2017-12-15 13:27:30 -08:00
blob_log_format.h BlobDB: Remove the need to get sequence number per write 2017-12-15 13:27:30 -08:00
blob_log_reader.cc Blob DB: Add statistics 2017-11-28 11:58:49 -08:00
blob_log_reader.h Blob DB: Add statistics 2017-11-28 11:58:49 -08:00
blob_log_writer.cc BlobDB: refactor DB open logic 2017-12-11 12:12:38 -08:00
blob_log_writer.h BlobDB: refactor DB open logic 2017-12-11 12:12:38 -08:00
ttl_extractor.cc Move blob_db/ttl_extractor.h into blob_db/blob_db.h 2017-07-28 14:28:21 -07:00