rocksdb/db
Siying Dong 424a524ac9 [Performance Branch] A Hashed Linked List Based Mem Table
Summary:
Implement a mem table, in which keys are hashed based on prefixes. In each bucket, entries are organized in a sorted linked list. It has the same thread safety guarantee as skip list.

The motivation is to optimize memory usage for the case that prefix hashing is primary way of seeking to the entry. Compared to hash skip list implementation, this implementation is more memory efficient, but inside each bucket, search is always linear. The target scenario is that there are only very limited number of records in each hash bucket.

Test Plan: Add a test case in db_test

Reviewers: haobo, kailiu, dhruba

Reviewed By: haobo

CC: igor, nkg-, leveldb

Differential Revision: https://reviews.facebook.net/D14979
2014-01-09 16:19:11 -08:00
..
builder.cc [RocksDB] Use raw pointer instead of shared pointer when passing Statistics object internally 2013-11-25 10:38:15 -08:00
builder.h Fixing the warning messages captured under mac os # Consider using git commit -m 'One line title' && arc diff. # You will save time by running lint and unit in the background. 2013-11-12 20:05:28 -08:00
c_test.c Rename leveldb to rocksdb in C api 2013-12-10 10:48:35 +02:00
c.cc C bindings: add a bunch of the newer options 2013-12-15 13:47:06 -08:00
corruption_test.cc Make "Table" pluggable 2013-10-28 17:54:09 -07:00
db_bench.cc Merge branch 'master' into performance 2013-12-27 12:23:17 -08:00
db_filesnapshot.cc Support multi-threaded DisableFileDeletions() and EnableFileDeletions() 2014-01-02 03:33:42 -08:00
db_impl_readonly.cc Introduce MergeContext to Lazily Initialize merge operand list 2013-12-11 11:37:28 -08:00
db_impl_readonly.h Support multi-threaded DisableFileDeletions() and EnableFileDeletions() 2014-01-02 03:33:42 -08:00
db_impl.cc Merge branch 'master' into performance 2014-01-07 11:04:21 -08:00
db_impl.h Merge branch 'master' into performance 2014-01-07 11:04:21 -08:00
db_iter.cc Merge branch 'master' into performance 2013-12-06 14:15:42 -08:00
db_iter.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
db_statistics.cc Fix #26 by putting the implementation of CreateDBStatistics() to a cc file 2013-12-05 22:29:03 -08:00
db_statistics.h Fix #26 by putting the implementation of CreateDBStatistics() to a cc file 2013-12-05 22:29:03 -08:00
db_stats_logger.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
db_test.cc [Performance Branch] A Hashed Linked List Based Mem Table 2014-01-09 16:19:11 -08:00
dbformat_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
dbformat.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
dbformat.h Make "Table" pluggable 2013-10-28 17:54:09 -07:00
deletefile_test.cc Start DeleteFileTest with clean plate 2013-11-15 16:30:23 -08:00
filename_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
filename.cc Unify DeleteFile and DeleteWalFiles 2013-10-25 08:32:14 -07:00
filename.h Unify DeleteFile and DeleteWalFiles 2013-10-25 08:32:14 -07:00
log_format.h Some minor refactoring on the code 2014-01-02 16:32:31 -08:00
log_reader.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
log_reader.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
log_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
log_writer.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
log_writer.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
memtable_list.cc Replace vector with autovector 2014-01-02 16:43:35 -08:00
memtable_list.h Replace vector with autovector 2014-01-02 16:43:35 -08:00
memtable.cc Merge branch 'master' into performance 2013-12-27 12:23:17 -08:00
memtable.h Introduce MergeContext to Lazily Initialize merge operand list 2013-12-11 11:37:28 -08:00
merge_context.h Introduce MergeContext to Lazily Initialize merge operand list 2013-12-11 11:37:28 -08:00
merge_helper.cc [RocksDB] Use raw pointer instead of shared pointer when passing Statistics object internally 2013-11-25 10:38:15 -08:00
merge_helper.h [RocksDB] Use raw pointer instead of shared pointer when passing Statistics object internally 2013-11-25 10:38:15 -08:00
merge_operator.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
merge_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
perf_context_test.cc Merge branch 'master' into performance 2013-12-06 14:15:42 -08:00
plain_table_db_test.cc Fix the valgrind issues 2014-01-03 11:48:31 -08:00
prefix_filter_iterator.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
prefix_test.cc [Performance Branch] A Hashed Linked List Based Mem Table 2014-01-09 16:19:11 -08:00
repair.cc Get rid of some shared_ptrs 2013-12-03 11:17:58 -08:00
simple_table_db_test.cc Improve the "table stats" 2013-11-19 16:29:42 -08:00
skiplist_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
skiplist.h [RocksDB][Performance Branch] Make height and branching factor configurable for skiplist implementation 2013-11-26 21:59:36 -08:00
snapshot.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
table_cache.cc Hotfix the bug in table cache's GetSliceForFileNumber 2014-01-02 10:30:42 -08:00
table_cache.h [RocksDB] Test diff on performance branch 2013-11-20 14:34:52 -08:00
table_properties_collector_test.cc Add the property block for the plain table 2013-12-13 17:18:14 -08:00
table_properties_collector.cc Extract metaindex block from block-based table 2013-12-05 16:34:16 -08:00
table_properties_collector.h Extract metaindex block from block-based table 2013-12-05 16:34:16 -08:00
transaction_log_impl.cc Fix the string format issue 2013-11-12 21:05:39 -08:00
transaction_log_impl.h Making the transaction log iterator more robust 2013-11-04 20:49:03 -08:00
version_edit_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
version_edit.cc Some minor refactoring on the code 2014-01-02 16:32:31 -08:00
version_edit.h Some minor refactoring on the code 2014-01-02 16:32:31 -08:00
version_set_reduce_num_levels.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
version_set_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
version_set.cc Some minor refactoring on the code 2014-01-02 16:32:31 -08:00
version_set.h Some minor refactoring on the code 2014-01-02 16:32:31 -08:00
write_batch_internal.h In-place updates for equal keys and similar sized values 2013-10-31 11:27:12 -07:00
write_batch_test.cc Get rid of some shared_ptrs 2013-12-03 11:17:58 -08:00
write_batch.cc [RocksDB] [Performance Branch] Revert previous patch. 2013-12-20 18:20:06 -08:00