rocksdb/utilities
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
..
backupable Avoid directory renames in BackupEngine 2018-04-20 17:28:33 -07:00
blob_db Provide a way to override windows memory allocator with jemalloc for ZSTD 2018-06-04 12:12:48 -07:00
cassandra comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
checkpoint fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
compaction_filters Comment out unused variables 2018-03-05 13:13:41 -08:00
convenience Change RocksDB License 2017-07-15 16:11:23 -07:00
date_tiered Move prefix_extractor to MutableCFOptions 2018-05-21 14:43:11 -07:00
document fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
geodb Fix geo_db may seek an error key when they have the same quadkey 2018-05-14 23:57:15 -07:00
leveldb_options Change RocksDB License 2017-07-15 16:11:23 -07:00
lua fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
memory fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
merge_operators comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
option_change_migration comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
options fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
persistent_cache Remove tests from ROCKSDB_VALGRIND_RUN 2018-05-30 16:15:16 -07:00
redis fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
simulator_cache comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
spatialdb fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
table_properties_collectors fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
transactions Extend existing unit tests to run with WriteUnprepared as well 2018-06-01 14:58:41 -07:00
ttl fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
write_batch_with_index 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
col_buf_decoder.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
col_buf_decoder.h Comment out unused variables 2018-03-05 13:13:41 -08:00
col_buf_encoder.cc fix shift UBSAN error in col_buf_encoder.cc 2018-02-20 16:44:00 -08:00
col_buf_encoder.h Change RocksDB License 2017-07-15 16:11:23 -07:00
column_aware_encoding_exp.cc fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
column_aware_encoding_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
column_aware_encoding_util.cc Provide a way to override windows memory allocator with jemalloc for ZSTD 2018-06-04 12:12:48 -07:00
column_aware_encoding_util.h Move prefix_extractor to MutableCFOptions 2018-05-21 14:43:11 -07:00
debug.cc Fix naming in InternalKey 2017-09-12 17:17:42 -07:00
env_librados_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
env_librados.cc Suppress lint in old files 2018-01-29 12:56:42 -08:00
env_librados.md Add EnvLibrados - RocksDB Env of RADOS (#1222) 2016-07-21 11:16:34 -07:00
env_mirror_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
env_mirror.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
env_timed_test.cc fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
env_timed.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
merge_operators.h Support StringAppendOperator(delimiter_char) constructor in java-api 2018-03-08 16:17:47 -08:00
object_registry_test.cc fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
util_merge_operators_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00