rocksdb/db
Tomislav Novak 35c8c814e8 Make ForwardIterator::status() more efficient
Summary:
In D19581 I made `ForwardIterator::status()` check all child iterators,
including immutable ones. It's, however, not necessary to do it every
time -- it'll suffice to check only when they're used and their status
could change.

This diff:
* introduces `immutable_status_` which is updated by `Seek()` and `Next()`
* removes special handling of `kIncomplete` status in those methods

Test Plan:
* `db_test`
* hacked ReadSequential in db_bench.cc to check `status()` in addition to
  validity:

```
   $ ./db_bench -use_existing_db -benchmarks readseq -disable_auto_compactions \
      -use_tailing_iterator  # without this patch
   Keys:       16 bytes each
   Values:     100 bytes each (50 bytes after compression)
   Entries:    1000000
   [...]
   DB path: [/dev/shm/rocksdbtest/dbbench]
   readseq      :       0.562 micros/op 1778103 ops/sec;   98.4 MB/s
   $ ./db_bench -use_existing_db -benchmarks readseq -disable_auto_compactions \
      -use_tailing_iterator  # with the patch
   readseq      :       0.433 micros/op 2311363 ops/sec;  127.8 MB/s
```

Reviewers: igor, sdong, ljin

Reviewed By: ljin

Subscribers: dhruba, leveldb, march, lovro

Differential Revision: https://reviews.facebook.net/D24063
2014-11-10 15:44:20 -08:00
..
builder.cc Turn on -Wshadow 2014-10-31 11:59:54 -07:00
builder.h introduce ImmutableOptions 2014-09-04 16:18:36 -07:00
c_test.c fix c_test 2014-10-31 15:04:01 -07:00
c.cc Remove allow_thread_local 2014-09-24 13:12:16 -07:00
column_family_test.cc Ignore missing column families 2014-09-02 13:29:05 -07:00
column_family.cc CompactFiles, EventListener and GetDatabaseMetaData 2014-11-07 14:45:18 -08:00
column_family.h CompactFiles, EventListener and GetDatabaseMetaData 2014-11-07 14:45:18 -08:00
compaction_job.cc Merge pull request #384 from msb-at-yahoo/compaction-filter-2-empty-changed-values 2014-11-10 16:12:15 -05:00
compaction_job.h Optimize usage of Status in CompactionJob 2014-11-10 11:57:58 -08:00
compaction_picker_test.cc Enforce naming convention of getters in version_set.h 2014-11-04 09:59:05 -08:00
compaction_picker.cc Fixed compile error in db/compaction.cc and db/compaction_picker.cc 2014-11-07 15:08:12 -08:00
compaction_picker.h CompactFiles, EventListener and GetDatabaseMetaData 2014-11-07 14:45:18 -08:00
compaction.cc Fixed the shadowing in db/compaction.cc and include/rocksdb/db.h 2014-11-07 15:22:10 -08:00
compaction.h CompactFiles, EventListener and GetDatabaseMetaData 2014-11-07 14:45:18 -08:00
comparator_db_test.cc comparator_db_test to cover more irregular comparators 2014-10-29 17:34:24 -07:00
corruption_test.cc corruption_test.cc: pass parameter by reference 2014-09-30 23:30:31 +02:00
cuckoo_table_db_test.cc cuckoo_table_db_test.cc: add flush after delete 2014-09-30 17:53:49 +02:00
db_bench.cc Make ForwardIterator::status() more efficient 2014-11-10 15:44:20 -08:00
db_filesnapshot.cc Enforce naming convention of getters in version_set.h 2014-11-04 09:59:05 -08:00
db_impl_debug.cc Enforce naming convention of getters in version_set.h 2014-11-04 09:59:05 -08:00
db_impl_readonly.cc dynamic max_sequential_skip_in_iterations 2014-10-23 15:34:21 -07:00
db_impl_readonly.h CompactFiles, EventListener and GetDatabaseMetaData 2014-11-07 14:45:18 -08:00
db_impl.cc Optimize usage of Status in CompactionJob 2014-11-10 11:57:58 -08:00
db_impl.h CompactFiles, EventListener and GetDatabaseMetaData 2014-11-07 14:45:18 -08:00
db_iter_test.cc Turn -Wshadow back on 2014-11-06 11:14:28 -08:00
db_iter.cc Turn -Wshadow back on 2014-11-06 11:14:28 -08:00
db_iter.h reduce references to cfd->options() in DBImpl 2014-09-08 15:04:34 -07:00
db_test.cc Fixed -WShadow errors in db/db_test.cc and include/rocksdb/metadata.h 2014-11-07 14:57:51 -08:00
dbformat_test.cc Use IterKey instead of string in Block::Iter to reduce malloc 2014-07-23 12:31:11 -07:00
dbformat.cc Turn -Wshadow back on 2014-11-06 11:14:28 -08:00
dbformat.h Turn -Wshadow back on 2014-11-06 11:14:28 -08:00
deletefile_test.cc Fix DeleteFile() + enable deleting files oldest files in level 0 2014-10-21 11:23:06 -07:00
file_indexer_test.cc Turn -Wshadow back on 2014-11-06 11:14:28 -08:00
file_indexer.cc Turn on -Wshadow 2014-10-31 11:59:54 -07:00
file_indexer.h unfriend ForwardIterator from VersionSet 2014-10-28 10:08:41 -07:00
filename_test.cc Support purging logs from separate log directory 2014-08-14 13:22:50 -07:00
filename.cc CompactFiles, EventListener and GetDatabaseMetaData 2014-11-07 14:45:18 -08:00
filename.h CompactFiles, EventListener and GetDatabaseMetaData 2014-11-07 14:45:18 -08:00
flush_job_test.cc Redesign pending_outputs_ 2014-11-07 11:50:34 -08:00
flush_job.cc Fixed compile error in db/flush_job.cc 2014-11-07 15:11:36 -08:00
flush_job.h CompactFiles, EventListener and GetDatabaseMetaData 2014-11-07 14:45:18 -08:00
flush_scheduler.cc Don't return (or dereference) dangling pointer 2014-10-02 14:33:16 -07:00
flush_scheduler.h Push model for flushing memtables 2014-09-10 18:46:09 -07:00
forward_iterator.cc Make ForwardIterator::status() more efficient 2014-11-10 15:44:20 -08:00
forward_iterator.h Make ForwardIterator::status() more efficient 2014-11-10 15:44:20 -08:00
internal_stats.cc Fix RecordIn and RecordDrop stats 2014-11-05 11:03:34 -08:00
internal_stats.h Fix RecordIn and RecordDrop stats 2014-11-05 11:03:34 -08:00
job_context.h Redesign pending_outputs_ 2014-11-07 11:50:34 -08:00
listener_test.cc CompactFiles, EventListener and GetDatabaseMetaData 2014-11-07 14:45:18 -08:00
log_and_apply_bench.cc make compaction related options changeable 2014-10-01 16:19:16 -07:00
log_format.h Some minor refactoring on the code 2014-01-02 16:32:31 -08:00
log_reader.cc Turn -Wshadow back on 2014-11-06 11:14:28 -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 Redesign pending_outputs_ 2014-11-07 11:50:34 -08:00
memtable_list.h Redesign pending_outputs_ 2014-11-07 11:50:34 -08:00
memtable.cc dynamic inplace_update options 2014-10-27 12:10:13 -07:00
memtable.h dynamic inplace_update options 2014-10-27 12:10:13 -07:00
merge_context.h Enhance partial merge to support multiple arguments 2014-03-24 17:57:13 -07:00
merge_helper.cc Turn -Wshadow back on 2014-11-06 11:14:28 -08:00
merge_helper.h Fixed the crash when merge_operator is not properly set after reopen. 2014-07-30 17:24:36 -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 Turn on -Wshadow 2014-10-31 11:59:54 -07:00
perf_context_test.cc Fix -Wshadow for tools 2014-11-07 15:04:30 -08:00
plain_table_db_test.cc Add ComparatorDBTest to test non-default comparators 2014-10-29 15:42:36 -07:00
prefix_test.cc Turn on -Wshadow 2014-10-31 11:59:54 -07:00
repair.cc Apply InfoLogLevel to the logs in db/repair.cc 2014-10-29 15:12:50 -07:00
skiplist_test.cc Turn -Wshadow back on 2014-11-06 11:14:28 -08:00
skiplist.h Include atomic 2014-10-27 15:03:45 -07:00
snapshot.h fix a few compile warnings 2014-09-04 23:06:23 +08:00
table_cache.cc TableMock + framework for mock classes 2014-10-28 17:52:32 -07:00
table_cache.h use GetContext to replace callback function pointer 2014-09-29 11:09:09 -07:00
table_properties_collector_test.cc fix asan check 2014-09-05 09:53:04 -07:00
table_properties_collector.cc Extract metaindex block from block-based table 2013-12-05 16:34:16 -08:00
table_properties_collector.h TablePropertiesCollectorFactory 2014-05-13 12:30:55 -07:00
transaction_log_impl.cc Turn -Wshadow back on 2014-11-06 11:14:28 -08:00
transaction_log_impl.h Turn -Wshadow back on 2014-11-06 11:14:28 -08:00
version_builder_test.cc Enforce naming convention of getters in version_set.h 2014-11-04 09:59:05 -08:00
version_builder.cc Enforce naming convention of getters in version_set.h 2014-11-04 09:59:05 -08:00
version_builder.h Move VersionBuilder logic to a separate .cc file 2014-10-31 16:34:38 -07:00
version_edit_test.cc Fix the bug where compaction does not fail when RocksDB can't create a new file. 2014-10-28 14:27:26 -07:00
version_edit.cc Turn on -Wshadow 2014-10-31 11:59:54 -07:00
version_edit.h Turn on -Wshadow 2014-10-31 11:59:54 -07:00
version_set_test.cc rename FileLevel to LevelFilesBrief / unfriend CompactedDBImpl 2014-10-28 10:03:13 -07:00
version_set.cc Get rid of mutex in CompactionJob's state 2014-11-07 15:44:12 -08:00
version_set.h Get rid of mutex in CompactionJob's state 2014-11-07 15:44:12 -08:00
wal_manager_test.cc WalManager 2014-10-29 17:43:37 -07:00
wal_manager.cc Apply InfoLogLevel to the logs in db/wal_manager.cc 2014-11-04 10:34:18 -08:00
wal_manager.h Fix -Wnon-virtual-dtor errors 2014-11-10 17:39:38 -05:00
write_batch_internal.h Push model for flushing memtables 2014-09-10 18:46:09 -07:00
write_batch_test.cc dynamic inplace_update options 2014-10-27 12:10:13 -07:00
write_batch.cc dynamic inplace_update options 2014-10-27 12:10:13 -07:00
write_controller_test.cc Push- instead of pull-model for managing Write stalls 2014-09-08 11:20:25 -07:00
write_controller.cc Push- instead of pull-model for managing Write stalls 2014-09-08 11:20:25 -07:00
write_controller.h Fix #284 2014-09-13 14:14:10 -07:00
write_thread.cc WriteThread 2014-09-12 16:23:58 -07:00
write_thread.h WriteThread 2014-09-12 16:23:58 -07:00