rocksdb/db
Kai Liu 22f396798e Enable hash index for block-based table
Summary: Based on previous patches, this diff eventually provides the end-to-end mechanism for users to specify the hash-index.

Test Plan: Wrote several new unit tests.

Reviewers: sdong, haobo, dhruba

Reviewed By: sdong

CC: leveldb

Differential Revision: https://reviews.facebook.net/D16539

Use shorten index key for hash-index
Summary:
I was wrong about the "index builder", right now since we create index
by scanning both whole table and index, there is not need to preserve
the whole key as the index key.

I switch back to original way index which is both space efficient and
able to supprot in-fly construction of hash index.

IN this patch, I made minimal change since I'm not sure if we still need
the "pluggable index builder", under current circumstance it is of no use
and kind of over-engineered. But I'm not sure if we can still exploit its
usefulness in the future; otherwise I think I can just burn them with great
vengeance.

Test Plan: unit tests

Reviewers: sdong, haobo

CC: leveldb

Differential Revision: https://reviews.facebook.net/D17745

Conflicts:
	table/block_based_table_reader.cc
	table/block_based_table_reader.h
2014-04-15 20:13:34 -07:00
..
builder.cc Enhance partial merge to support multiple arguments 2014-03-24 17:57:13 -07:00
builder.h [Performance Branch] PlainTable to encode rows with seqID 0, value type using 1 internal byte. 2014-02-03 12:19:30 -08:00
c_test.c [C-API] added "rocksdb_options_set_plain_table_factory" to make it possible to use plain table factory 2014-04-03 10:47:37 +02:00
c.cc [C-API] implemented more options 2014-04-03 10:47:37 +02:00
compaction_picker.cc initialize candidate count 2014-04-03 11:45:44 -07:00
compaction_picker.h Buffer info logs when picking compactions and write them out after releasing the mutex 2014-03-05 15:36:32 -08:00
compaction.cc Don't compact with zero input files 2014-03-19 16:01:25 -07:00
compaction.h CompactionContext to include is_manual_compaction 2014-02-12 12:24:18 -08:00
corruption_test.cc Some small cleaning up to make some compiling environment happy 2014-03-26 18:11:41 -07:00
db_bench.cc make hash_link_list Node's key space consecutively followed at the end 2014-04-04 15:37:28 -07:00
db_filesnapshot.cc Fix MacOS errors 2014-04-03 16:04:34 -07:00
db_impl_readonly.cc Sanity check on Open 2014-03-20 14:18:29 -07:00
db_impl_readonly.h CompactRange() to return status 2014-01-23 16:41:46 -08:00
db_impl.cc Polish IterKey and use it in DBImpl::ProcessKeyValueCompaction() 2014-04-09 20:54:16 -07:00
db_impl.h Create log::Writer out of DB Mutex 2014-04-04 15:46:28 -07:00
db_iter.cc PlainTableIterator not to store copied key in std::string 2014-04-07 22:18:09 -07:00
db_iter.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
db_stats_logger.cc Move functions from VersionSet to Version 2014-01-15 16:18:04 -08:00
db_test.cc Enable hash index for block-based table 2014-04-15 20:13:34 -07:00
dbformat_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
dbformat.cc DBIter to use static allocated char array for saved_key_ (if it is not too long) 2014-04-01 16:43:11 -07:00
dbformat.h Enable hash index for block-based table 2014-04-15 20:13:34 -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
internal_stats.cc [RocksDB] Add db property "rocksdb.cur-size-active-mem-table" 2014-03-27 15:14:04 -07:00
internal_stats.h [RocksDB] Add db property "rocksdb.cur-size-active-mem-table" 2014-03-27 15:14:04 -07:00
log_format.h Some minor refactoring on the code 2014-01-02 16:32:31 -08:00
log_reader.cc Make Log::Reader more robust 2014-02-28 13:19:47 -08:00
log_reader.h Fix UnmarkEOF for partial blocks 2014-01-27 14:49:10 -08:00
log_test.cc Make it compile on Debian/GCC 4.7 2014-03-14 22:44:35 +00: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 Move several more logging inside DB mutex to log buffer 2014-04-03 10:47:18 -07:00
memtable_list.h Move several more logging inside DB mutex to log buffer 2014-04-03 10:47:18 -07:00
memtable.cc make hash_link_list Node's key space consecutively followed at the end 2014-04-04 15:37:28 -07:00
memtable.h A heuristic way to check if a memtable is full 2014-03-12 16:40:14 -07:00
merge_context.h Enhance partial merge to support multiple arguments 2014-03-24 17:57:13 -07:00
merge_helper.cc Fix the bug in MergeUtil which causes mixing values of different keys. 2014-03-27 16:15:25 -07:00
merge_helper.h [rocksdb] new CompactionFilterV2 API 2014-03-24 20:47:53 -07:00
merge_operator.cc Some small cleaning up to make some compiling environment happy 2014-03-26 18:11:41 -07:00
merge_test.cc Enhance partial merge to support multiple arguments 2014-03-24 17:57:13 -07:00
perf_context_test.cc Missing includes 2014-03-14 13:02:20 -07:00
plain_table_db_test.cc PlainTableIterator not to store copied key in std::string 2014-04-07 22:18:09 -07:00
prefix_filter_iterator.h Moving Some includes from options.h to forward declaration 2014-01-24 17:16:22 -08:00
prefix_test.cc Fix HashSkipList and HashLinkedList SIGSEGV 2014-03-14 10:02:04 -07:00
repair.cc Optimize fallocation 2014-03-17 21:52:14 -07:00
simple_table_db_test.cc Make table properties shareable 2014-02-07 19:26:49 -08:00
skiplist_test.cc Clean up arena API 2014-01-30 22:10:10 -08:00
skiplist.h Consolidate SliceTransform object ownership 2014-03-10 12:56:46 -07:00
snapshot.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
table_cache.cc When Options.max_num_files=-1, non level0 files also by pass table cache 2014-03-25 18:40:52 -07:00
table_cache.h Fix valgrind error caused by FileMetaData as two level iterator's index block handle 2014-04-02 14:38:28 -07:00
table_properties_collector_test.cc Fix problem 3 for issue #80 2014-02-11 17:52:18 -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
tailing_iter.cc Consolidate SliceTransform object ownership 2014-03-10 12:56:46 -07:00
tailing_iter.h Tailing iterator 2014-01-23 16:26:08 -08:00
transaction_log_impl.cc Revert "Fix bad merge of D16791 and D16767" 2014-03-12 09:37:43 -07:00
transaction_log_impl.h Revert "Fix bad merge of D16791 and D16767" 2014-03-12 09:37:43 -07:00
version_edit_test.cc Remove compaction pointers 2014-01-16 14:06:53 -08:00
version_edit.cc Don't store version number in MANIFEST 2014-03-31 11:33:09 -07:00
version_edit.h Don't store version number in MANIFEST 2014-03-31 11:33:09 -07:00
version_set_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
version_set.cc Fix valgrind error caused by FileMetaData as two level iterator's index block handle 2014-04-02 14:38:28 -07:00
version_set.h ComputeCompactionScore in CompactionPicker 2014-03-19 16:52:26 -07: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 [Performance Branch] PlainTable to encode rows with seqID 0, value type using 1 internal byte. 2014-02-03 12:19:30 -08:00
write_batch.cc Merge branch 'master' into performance 2014-01-23 16:32:49 -08:00