rocksdb/db
Aaron Gao 447f17127c new Prev() prefix support using SeekForPrev()
Summary:
1) The previous solution for Prev() prefix support is not clean.
Since I add api SeekForPrev(), now the Prev() can be symmetric to Next().
and we do not need SeekToLast() to be called in Prev() any more.

Also, Next() will Seek(prefix_seek_key_) to solve the problem of possible inconsistency between db_iter and merge_iter when
there is merge_operator. And prefix_seek_key is only refreshed when change direction to forward.

2) This diff also solves the bug of Iterator::SeekToLast() with iterate_upper_bound_ with prefix extractor.

add test cases for the above two cases.

There are some tests for the SeekToLast() in Prev(), I will clean them later.

Test Plan: make all check

Reviewers: IslamAbdelRahman, andrewkr, yiwu, sdong

Reviewed By: sdong

Subscribers: andrewkr, dhruba, leveldb

Differential Revision: https://reviews.facebook.net/D63933
2016-10-11 13:54:26 -07:00
..
auto_roll_logger.cc Eliminate use of 'using namespace std'. Also remove a number of ADL references to std functions. 2016-05-20 07:42:18 -07:00
auto_roll_logger.h
auto_roll_logger_test.cc Cleanup auto-roll logger flush-while-rolling test 2016-07-07 11:35:40 -07:00
builder.cc Add TableBuilderOptions::level and relevant changes (#1335) 2016-09-17 22:30:43 -07:00
builder.h Add TableBuilderOptions::level and relevant changes (#1335) 2016-09-17 22:30:43 -07:00
c.cc Fix C api memtable rep bugs. (#1328) 2016-09-12 15:31:42 -07:00
c_test.c Fix C api memtable rep bugs. (#1328) 2016-09-12 15:31:42 -07:00
column_family.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
column_family.h Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
column_family_test.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
compact_files_test.cc Fix CompactFilesTest.ObsoleteFiles timeout (#1353) 2016-09-26 10:39:07 -07:00
compacted_db_impl.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
compacted_db_impl.h
compaction.cc Refactor MutableCFOptions 2016-09-13 21:11:59 -07:00
compaction.h Refactor MutableCFOptions 2016-09-13 21:11:59 -07:00
compaction_iterator.cc Single Delete Mismatch and Fallthrough statistics 2016-08-16 08:21:43 -07:00
compaction_iterator.h Single Delete Mismatch and Fallthrough statistics 2016-08-16 08:21:43 -07:00
compaction_iterator_test.cc
compaction_job.cc not cut compaction output when compact to level 0 2016-09-23 17:16:38 -07:00
compaction_job.h Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
compaction_job_stats_test.cc UniversalCompaction should ignore sorted runs being compacted (when compacting for file num) 2016-08-10 12:37:43 -07:00
compaction_job_test.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
compaction_picker.cc Refactor MutableCFOptions 2016-09-13 21:11:59 -07:00
compaction_picker.h Remove ImmutableCFOptions from public API 2016-09-02 14:16:31 -07:00
compaction_picker_test.cc Support running consistency checks in release mode 2016-10-07 17:21:45 -07:00
comparator_db_test.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
convenience.cc
corruption_test.cc
cuckoo_table_db_test.cc
db_block_cache_test.cc Not insert into block cache if cache is full and not holding handle 2016-08-23 13:53:49 -07:00
db_bloom_filter_test.cc Deprectate filter_deletes 2016-06-17 10:30:47 -07:00
db_compaction_filter_test.cc
db_compaction_test.cc Compaction picker to expand output level files for keys cross files' boundary too. 2016-07-26 17:56:36 -07:00
db_dynamic_level_test.cc Merge options source_compaction_factor, max_grandparent_overlap_bytes and expanded_compaction_factor into max_compaction_bytes 2016-09-01 14:33:24 -07:00
db_filesnapshot.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
db_flush_test.cc Fix unit test which breaks lite build 2016-07-21 14:32:12 -07:00
db_impl.cc new Prev() prefix support using SeekForPrev() 2016-10-11 13:54:26 -07:00
db_impl.h Fix conflict between AddFile() and CompactRange() 2016-09-28 15:42:06 -07:00
db_impl_add_file.cc Revert "Support SST files with Global sequence numbers" 2016-10-07 14:05:12 -07:00
db_impl_debug.cc [rocksdb] make more options dynamic 2016-05-17 13:11:56 -07:00
db_impl_experimental.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
db_impl_readonly.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
db_impl_readonly.h
db_info_dumper.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
db_info_dumper.h Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
db_inplace_update_test.cc
db_io_failure_test.cc Add NoSpace subcode to IOError (#1320) 2016-09-07 12:37:45 -07:00
db_iter.cc new Prev() prefix support using SeekForPrev() 2016-10-11 13:54:26 -07:00
db_iter.h new Prev() prefix support using SeekForPrev() 2016-10-11 13:54:26 -07:00
db_iter_test.cc new Prev() prefix support using SeekForPrev() 2016-10-11 13:54:26 -07:00
db_iterator_test.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
db_log_iter_test.cc
db_options_test.cc Recompute compaction score on SetOptions (#1346) 2016-09-27 11:17:15 -07:00
db_properties_test.cc Store range tombstones in memtable 2016-09-30 09:06:43 -07:00
db_sst_test.cc Move AddFile() tests to external_sst_file_test.cc 2016-09-07 15:41:54 -07:00
db_table_properties_test.cc DBTablePropertiesTest.GetPropertiesOfTablesInRange: Fix Flaky 2016-07-19 15:46:20 -07:00
db_tailing_iter_test.cc
db_test.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
db_test2.cc forbid merge during recovery 2016-09-21 11:05:07 -07:00
db_test_util.cc Eliminate memcpy from ForwardIterator 2016-08-11 19:10:16 -07:00
db_test_util.h Consider more factors when determining preallocation size of WAL files 2016-09-19 12:04:35 -07:00
db_universal_compaction_test.cc UniversalCompaction should ignore sorted runs being compacted (when compacting for file num) 2016-08-10 12:37:43 -07:00
db_wal_test.cc Add facility to write only a portion of WriteBatch to WAL 2016-10-07 11:32:10 -07:00
dbformat.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
dbformat.h Revert "Support SST files with Global sequence numbers" 2016-10-07 14:05:12 -07:00
dbformat_test.cc
deletefile_test.cc Fix a bug that accesses invalid address in iterator cleanup function 2016-07-05 11:57:14 -07:00
event_helpers.cc
event_helpers.h
experimental.cc
external_sst_file_test.cc Revert "Support SST files with Global sequence numbers" 2016-10-07 14:05:12 -07:00
fault_injection_test.cc Add facility to write only a portion of WriteBatch to WAL 2016-10-07 11:32:10 -07:00
file_indexer.cc
file_indexer.h
file_indexer_test.cc
filename.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
filename.h Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
filename_test.cc
flush_job.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
flush_job.h Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
flush_job_test.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
flush_scheduler.cc Fix clang analyzer errors 2016-07-08 17:50:51 -07:00
flush_scheduler.h
forward_iterator.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
forward_iterator.h Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
forward_iterator_bench.cc
inlineskiplist.h Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
inlineskiplist_test.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
internal_stats.cc Fix mac build 2016-09-21 20:22:09 -07:00
internal_stats.h Add AddFile() InternalStats for Total files/L0 files/total keys ingested 2016-09-21 14:24:08 -07:00
job_context.h read_options.background_purge_on_iterator_cleanup to cover forward iterator and log file closing too. 2016-08-10 13:16:41 -07:00
listener_test.cc add cfh deletion started listener 2016-09-22 11:56:18 -07:00
log_format.h
log_reader.cc Fix clang analyzer errors 2016-07-08 17:50:51 -07:00
log_reader.h db/log_reader: treat bad record length or checksum as EOF 2016-05-22 22:00:15 -07:00
log_test.cc db/log_reader: treat bad record length or checksum as EOF 2016-05-22 22:00:15 -07:00
log_writer.cc
log_writer.h Need to make sure log file synced before flushing memtable of one column family 2016-07-21 16:29:06 -07:00
managed_iterator.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
managed_iterator.h Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
manual_compaction_test.cc
memtable.cc Store range tombstones in memtable 2016-09-30 09:06:43 -07:00
memtable.h Store range tombstones in memtable 2016-09-30 09:06:43 -07:00
memtable_allocator.cc Avoid updating memtable allocated bytes if write_buffer_size is not set 2016-07-13 19:33:57 -07:00
memtable_allocator.h Add options.write_buffer_manager: control total memtable size across DB instances 2016-07-05 18:11:25 -07:00
memtable_list.cc Fix flush not being commit while writing manifest 2016-07-21 10:10:41 -07:00
memtable_list.h
memtable_list_test.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
memtablerep_bench.cc Add options.write_buffer_manager: control total memtable size across DB instances 2016-07-05 18:11:25 -07:00
merge_context.h Fix MergeContext::copied_operands_ strings moving 2016-07-25 15:31:41 -07:00
merge_helper.cc Introduce FullMergeV2 (eliminate memcpy from merge operators) 2016-07-20 09:49:03 -07:00
merge_helper.h Introduce FullMergeV2 (eliminate memcpy from merge operators) 2016-07-20 09:49:03 -07:00
merge_helper_test.cc
merge_operator.cc Introduce FullMergeV2 (eliminate memcpy from merge operators) 2016-07-20 09:49:03 -07:00
merge_test.cc
options_file_test.cc
perf_context_test.cc
pinned_iterators_manager.h Minor PinnedIteratorsManager Refactoring 2016-08-11 11:54:17 -07:00
plain_table_db_test.cc Only cache level 0 indexes and filter when opening table reader 2016-07-20 11:23:31 -07:00
prefix_test.cc new Prev() prefix support using SeekForPrev() 2016-10-11 13:54:26 -07:00
repair.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
repair_test.cc ColumnFamilyOptions API [CF + RepairDB part 3/3] 2016-06-24 16:29:43 -07:00
skiplist.h Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
skiplist_test.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
snapshot_impl.cc
snapshot_impl.h
table_cache.cc Fix a crash when compaction fails to open a file 2016-08-25 04:39:26 -07:00
table_cache.h Remove ImmutableCFOptions from public API 2016-09-02 14:16:31 -07:00
table_properties_collector.cc Added "number of merge operands" to statistics in ssts. 2016-05-19 14:24:48 -07:00
table_properties_collector.h Added "number of merge operands" to statistics in ssts. 2016-05-19 14:24:48 -07:00
table_properties_collector_test.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
transaction_log_impl.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
transaction_log_impl.h Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
version_builder.cc Support running consistency checks in release mode 2016-10-07 17:21:45 -07:00
version_builder.h Only cache level 0 indexes and filter when opening table reader 2016-07-20 11:23:31 -07:00
version_builder_test.cc Support running consistency checks in release mode 2016-10-07 17:21:45 -07:00
version_edit.cc Miscellaneous performance improvements 2016-07-12 14:15:32 -07:00
version_edit.h Avoid FileMetaData copy 2016-07-13 15:36:22 -07:00
version_edit_test.cc
version_set.cc Support running consistency checks in release mode 2016-10-07 17:21:45 -07:00
version_set.h Support running consistency checks in release mode 2016-10-07 17:21:45 -07:00
version_set_test.cc Support running consistency checks in release mode 2016-10-07 17:21:45 -07:00
wal_manager.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
wal_manager.h Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
wal_manager_test.cc Split DBOptions into ImmutableDBOptions and MutableDBOptions 2016-09-23 16:34:04 -07:00
write_batch.cc Add facility to write only a portion of WriteBatch to WAL 2016-10-07 11:32:10 -07:00
write_batch_base.cc WriteBatch support for range deletion 2016-08-16 08:16:04 -07:00
write_batch_internal.h Add facility to write only a portion of WriteBatch to WAL 2016-10-07 11:32:10 -07:00
write_batch_test.cc Add facility to write only a portion of WriteBatch to WAL 2016-10-07 11:32:10 -07:00
write_callback.h
write_callback_test.cc
write_controller.cc
write_controller.h
write_controller_test.cc
write_thread.cc WriteBatch support for range deletion 2016-08-16 08:16:04 -07:00
write_thread.h fix simple typos (#1183) 2016-06-25 08:29:40 +01:00
xfunc_test_points.cc
xfunc_test_points.h