rocksdb/utilities
Maysam Yabandeh 11526252cc Pinnableslice (2nd attempt)
Summary:
PinnableSlice

    Summary:
    Currently the point lookup values are copied to a string provided by the
    user. This incures an extra memcpy cost. This patch allows doing point lookup
    via a PinnableSlice which pins the source memory location (instead of
    copying their content) and releases them after the content is consumed
    by the user. The old API of Get(string) is translated to the new API
    underneath.

    Here is the summary for improvements:

    value 100 byte: 1.8% regular, 1.2% merge values
    value 1k byte: 11.5% regular, 7.5% merge values
    value 10k byte: 26% regular, 29.9% merge values
    The improvement for merge could be more if we extend this approach to
    pin the merge output and delay the full merge operation until the user
    actually needs it. We have put that for future work.

    PS:
    Sometimes we observe a small decrease in performance when switching from
    t5452014 to this patch but with the old Get(string) API. The d
Closes https://github.com/facebook/rocksdb/pull/1756

Differential Revision: D4391738

Pulled By: maysamyabandeh

fbshipit-source-id: 6f3edd3
2017-03-13 11:54:10 -07:00
..
backupable Statistic for how often rate limiter is drained 2017-03-02 17:54:15 -08:00
blob_db Support SST files with Global sequence numbers [reland] 2016-10-18 16:59:37 -07:00
checkpoint Remove XFunc tests 2017-02-23 12:09:11 -08:00
compaction_filters Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
convenience Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
date_tiered Rename merger.h -> merging_iterator.h 2017-02-02 16:54:19 -08:00
document Pinnableslice (2nd attempt) 2017-03-13 11:54:10 -07:00
geodb Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
leveldb_options Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
lua rocks_lua_compaction_filter: add unused attribute to a variable 2016-11-21 14:54:14 -08:00
memory Disable auto compactions in memory_test and re-enable the test (#1408) 2016-10-19 18:18:42 -07:00
merge_operators Introduce FullMergeV2 (eliminate memcpy from merge operators) 2016-07-20 09:49:03 -07:00
option_change_migration option_change_migration_test: force full compaction when needed 2016-11-15 22:09:34 -08:00
options Only cache level 0 indexes and filter when opening table reader 2016-07-20 11:23:31 -07:00
persistent_cache Fix unaligned reads in read cache 2017-02-27 13:09:12 -08:00
redis Eliminate use of 'using namespace std'. Also remove a number of ADL references to std functions. 2016-05-20 07:42:18 -07:00
simulator_cache Allow incrementing refcount on cache handles 2017-01-10 16:54:20 -08:00
spatialdb Remove disableDataSync option 2017-02-13 11:09:13 -08:00
table_properties_collectors Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
transactions Windows thread 2017-02-06 14:54:18 -08:00
ttl Pinnableslice (2nd attempt) 2017-03-13 11:54:10 -07:00
write_batch_with_index Make WriteBatchWithIndex moveble 2017-02-22 17:54:11 -08:00
col_buf_decoder.cc fix non-portable behavior in encoder 2017-01-20 16:39:22 -08:00
col_buf_decoder.h Fix clang build failure and refactor unit test 2016-08-02 15:16:39 -07:00
col_buf_encoder.cc Fix travis (compile for clang < 3.9) 2016-12-01 10:09:22 -08:00
col_buf_encoder.h Fix clang build failure and refactor unit test 2016-08-02 15:16:39 -07:00
column_aware_encoding_exp.cc Fix build on FreeBSD 2017-01-10 11:39:12 -08:00
column_aware_encoding_test.cc Fix clang build failure and refactor unit test 2016-08-02 15:16:39 -07:00
column_aware_encoding_util.cc Fix Windows build issues (#1253) 2016-08-02 17:15:18 -07:00
column_aware_encoding_util.h Remove ImmutableCFOptions from public API 2016-09-02 14:16:31 -07:00
env_librados_test.cc Add EnvLibrados - RocksDB Env of RADOS (#1222) 2016-07-21 11:16:34 -07:00
env_librados.cc change UseDirectIO() to use_direct_io() 2017-01-13 12:09:15 -08:00
env_librados.md Add EnvLibrados - RocksDB Env of RADOS (#1222) 2016-07-21 11:16:34 -07:00
env_mirror_test.cc env: add EnvMirror 2015-12-10 21:32:45 -05:00
env_mirror.cc direct io write support 2016-12-22 13:09:19 -08:00
merge_operators.h Introduce FullMergeV2 (eliminate memcpy from merge operators) 2016-07-20 09:49:03 -07:00
object_registry_test.cc Generalize Env registration framework 2017-01-25 16:09:14 -08:00
util_merge_operators_test.cc Introduce FullMergeV2 (eliminate memcpy from merge operators) 2016-07-20 09:49:03 -07:00