rocksdb/db
Maysam Yabandeh 17731a43a6 WritePrepared Txn: Optimize for recoverable state
Summary:
GetCommitTimeWriteBatch is currently used to store some state as part of commit in 2PC. In MyRocks it is specifically used to store some data that would be needed only during recovery. So it is not need to be stored in memtable right after each commit.
This patch enables an optimization to write the GetCommitTimeWriteBatch only to the WAL. The batch will be written to memtable during recovery when the WAL is replayed. To cover the case when WAL is deleted after memtable flush, the batch is also buffered and written to memtable right before each memtable flush.
Closes https://github.com/facebook/rocksdb/pull/3071

Differential Revision: D6148023

Pulled By: maysamyabandeh

fbshipit-source-id: 2d09bae5565abe2017c0327421010d5c0d55eaa7
2017-11-01 17:26:46 -07:00
..
builder.cc Add DB::Properties::kEstimateOldestKeyTime 2017-10-23 15:27:27 -07:00
builder.h TableProperty::oldest_key_time defaults to 0 2017-10-27 15:00:05 -07:00
c_test.c Added save points for transactions C API 2017-09-14 14:18:59 -07:00
c.cc Make writable_file_max_buffer_size dynamic 2017-10-31 13:56:35 -07:00
column_family_test.cc arena: derive alignment unit from std::max_align_t 2017-10-17 11:13:19 -07:00
column_family.cc Fix unused var warnings in Release mode 2017-10-23 14:27:04 -07:00
column_family.h Fix coverity issues column_family, compaction_db/iterator 2017-10-27 11:26:42 -07:00
compact_files_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
compacted_db_impl.cc Fix coverity issues column_family, compaction_db/iterator 2017-10-27 11:26:42 -07:00
compacted_db_impl.h Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
compaction_iteration_stats.h add counter for deletion dropping optimization 2017-08-19 14:10:08 -07:00
compaction_iterator_test.cc WritePrepared Txn: Compaction/Flush 2017-10-06 10:41:53 -07:00
compaction_iterator.cc Fix coverity issues column_family, compaction_db/iterator 2017-10-27 11:26:42 -07:00
compaction_iterator.h WritePrepared Txn: Compaction/Flush 2017-10-06 10:41:53 -07:00
compaction_job_stats_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
compaction_job_test.cc WritePrepared Txn: Compaction/Flush 2017-10-06 10:41:53 -07:00
compaction_job.cc fix delete range bug 2017-10-17 11:13:19 -07:00
compaction_job.h WritePrepared Txn: Compaction/Flush 2017-10-06 10:41:53 -07:00
compaction_picker_test.cc Make FIFO compaction options dynamically configurable 2017-10-19 15:26:36 -07:00
compaction_picker_universal.cc update scores after picking universal compaction 2017-08-16 18:42:33 -07:00
compaction_picker_universal.h Change RocksDB License 2017-07-15 16:11:23 -07:00
compaction_picker.cc single-file bottom-level compaction when snapshot released 2017-10-25 16:30:37 -07:00
compaction_picker.h fix hanging after CompactFiles with L0 overlap 2017-09-13 15:41:38 -07:00
compaction.cc always drop tombstones compacted to bottommost level 2017-10-27 15:56:35 -07:00
compaction.h Change RocksDB License 2017-07-15 16:11:23 -07:00
comparator_db_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
convenience.cc add VerifyChecksum() to db.h 2017-08-09 15:58:13 -07:00
corruption_test.cc fix corruption_test valgrind 2017-08-11 12:29:14 -07:00
cuckoo_table_db_test.cc Enable MSVC W4 with a few exceptions. Fix warnings and bugs 2017-10-19 10:57:12 -07:00
db_basic_test.cc Enable MSVC W4 with a few exceptions. Fix warnings and bugs 2017-10-19 10:57:12 -07:00
db_blob_index_test.cc fix lite build 2017-10-17 08:57:09 -07:00
db_block_cache_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
db_bloom_filter_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
db_compaction_filter_test.cc Split CompactionFilterWithValueChange 2017-10-20 15:42:07 -07:00
db_compaction_test.cc single-file bottom-level compaction when snapshot released 2017-10-25 16:30:37 -07:00
db_dynamic_level_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
db_encryption_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_filesnapshot.cc Remove some left-over BSD headers 2017-07-18 11:56:57 -07:00
db_flush_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
db_impl_compaction_flush.cc WritePrepared Txn: Optimize for recoverable state 2017-11-01 17:26:46 -07:00
db_impl_debug.cc Enable two write queues for transactions 2017-10-23 14:27:04 -07:00
db_impl_experimental.cc Inform caller when rocksdb is stalling writes 2017-10-05 18:11:43 -07:00
db_impl_files.cc WritePrepared Txn: Recovery 2017-09-28 16:56:45 -07:00
db_impl_open.cc Mark files as trash by using .trash extension 2017-10-27 13:27:12 -07:00
db_impl_readonly.cc WritePrepared Txn: Iterator 2017-10-09 17:15:28 -07:00
db_impl_readonly.h Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
db_impl_write.cc WritePrepared Txn: Optimize for recoverable state 2017-11-01 17:26:46 -07:00
db_impl.cc Make writable_file_max_buffer_size dynamic 2017-10-31 13:56:35 -07:00
db_impl.h WritePrepared Txn: Optimize for recoverable state 2017-11-01 17:26:46 -07:00
db_info_dumper.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_info_dumper.h Change RocksDB License 2017-07-15 16:11:23 -07:00
db_inplace_update_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_io_failure_test.cc Fix LITE unit tests 2017-07-26 21:11:47 -07:00
db_iter_test.cc implement lower bound for iterators 2017-10-26 17:27:42 -07:00
db_iter.cc Fix coverity uninitialized fields warnings 2017-10-26 21:11:50 -07:00
db_iter.h WritePrepared Txn: Iterator 2017-10-09 17:15:28 -07:00
db_iterator_test.cc Split CompactionFilterWithValueChange 2017-10-20 15:42:07 -07:00
db_log_iter_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_memtable_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
db_merge_operator_test.cc Introduce conditional merge-operator invocation in point lookups 2017-09-28 15:58:49 -07:00
db_options_test.cc Make writable_file_max_buffer_size dynamic 2017-10-31 13:56:35 -07:00
db_properties_test.cc Add DB::Properties::kEstimateOldestKeyTime 2017-10-23 15:27:27 -07:00
db_range_del_test.cc Fix wrong smallest key of delete range tombstones 2017-08-29 18:41:35 -07:00
db_sst_test.cc TableProperty::oldest_key_time defaults to 0 2017-10-27 15:00:05 -07:00
db_statistics_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_table_properties_test.cc fix deletion-triggered compaction in table builder 2017-09-28 18:17:30 -07:00
db_tailing_iter_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
db_test2.cc fix lite build 2017-10-17 08:57:09 -07:00
db_test_util.cc Fix build on OpenBSD 2017-10-24 13:27:38 -07:00
db_test_util.h Add DB::Properties::kEstimateOldestKeyTime 2017-10-23 15:27:27 -07:00
db_test.cc Return Status::InvalidArgument if user request sync write while disabling WAL 2017-10-28 22:11:18 -07:00
db_universal_compaction_test.cc update scores after picking universal compaction 2017-08-16 18:42:33 -07:00
db_wal_test.cc Add test kPointInTimeRecoveryCFConsistency 2017-09-22 17:26:36 -07:00
db_write_test.cc Return Status::InvalidArgument if user request sync write while disabling WAL 2017-10-28 22:11:18 -07:00
dbformat_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
dbformat.cc Add ValueType::kTypeBlobIndex 2017-10-03 09:11:23 -07:00
dbformat.h Add ValueType::kTypeBlobIndex 2017-10-03 09:11:23 -07:00
deletefile_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
event_helpers.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
event_helpers.h Change RocksDB License 2017-07-15 16:11:23 -07:00
experimental.cc Replace dynamic_cast<> 2017-07-28 16:27:16 -07:00
external_sst_file_basic_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
external_sst_file_ingestion_job.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
external_sst_file_ingestion_job.h Change RocksDB License 2017-07-15 16:11:23 -07:00
external_sst_file_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
fault_injection_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
file_indexer_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
file_indexer.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
file_indexer.h Change RocksDB License 2017-07-15 16:11:23 -07:00
filename_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
flush_job_test.cc WritePrepared Txn: Compaction/Flush 2017-10-06 10:41:53 -07:00
flush_job.cc TableProperty::oldest_key_time defaults to 0 2017-10-27 15:00:05 -07:00
flush_job.h WritePrepared Txn: Compaction/Flush 2017-10-06 10:41:53 -07:00
flush_scheduler.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
flush_scheduler.h Change RocksDB License 2017-07-15 16:11:23 -07:00
forward_iterator_bench.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
forward_iterator.cc fix populating range deletions in forward iterator 2017-09-21 17:56:38 -07:00
forward_iterator.h Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
internal_stats.cc TableProperty::oldest_key_time defaults to 0 2017-10-27 15:00:05 -07:00
internal_stats.h Add DB::Properties::kEstimateOldestKeyTime 2017-10-23 15:27:27 -07:00
job_context.h Inform caller when rocksdb is stalling writes 2017-10-05 18:11:43 -07:00
listener_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
log_format.h Change RocksDB License 2017-07-15 16:11:23 -07:00
log_reader.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
log_reader.h Change RocksDB License 2017-07-15 16:11:23 -07:00
log_test.cc Enable MSVC W4 with a few exceptions. Fix warnings and bugs 2017-10-19 10:57:12 -07:00
log_writer.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
log_writer.h Change RocksDB License 2017-07-15 16:11:23 -07:00
malloc_stats.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
malloc_stats.h Change RocksDB License 2017-07-15 16:11:23 -07:00
managed_iterator.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
managed_iterator.h Change RocksDB License 2017-07-15 16:11:23 -07:00
manual_compaction_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
memtable_list_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
memtable_list.cc Add DB::Properties::kEstimateOldestKeyTime 2017-10-23 15:27:27 -07:00
memtable_list.h Add DB::Properties::kEstimateOldestKeyTime 2017-10-23 15:27:27 -07:00
memtable.cc Add DB::Properties::kEstimateOldestKeyTime 2017-10-23 15:27:27 -07:00
memtable.h Add DB::Properties::kEstimateOldestKeyTime 2017-10-23 15:27:27 -07:00
merge_context.h Change RocksDB License 2017-07-15 16:11:23 -07:00
merge_helper_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
merge_helper.cc Allow merge operator to be called even with a single operand 2017-08-16 23:42:00 -07:00
merge_helper.h Allow merge operator to be called even with a single operand 2017-08-16 23:42:00 -07:00
merge_operator.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
merge_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
options_file_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
perf_context_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
pinned_iterators_manager.h Change RocksDB License 2017-07-15 16:11:23 -07:00
plain_table_db_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
prefix_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
range_del_aggregator_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
range_del_aggregator.cc Two small refactoring for better inlining 2017-09-14 15:41:49 -07:00
range_del_aggregator.h Two small refactoring for better inlining 2017-09-14 15:41:49 -07:00
read_callback.h write-prepared txn: call IsInSnapshot 2017-09-11 09:14:48 -07:00
repair_test.cc fix file numbers after repair 2017-10-10 13:12:37 -07:00
repair.cc WritePrepared Txn: Disable GC during recovery 2017-10-18 09:11:50 -07:00
snapshot_checker.h WritePrepared Txn: Disable GC during recovery 2017-10-18 09:11:50 -07:00
snapshot_impl.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
snapshot_impl.h WriteAtPrepare: Efficient read from snapshot list 2017-08-26 01:00:38 -07:00
table_cache.cc expose a hook to skip tables during iteration 2017-10-17 22:12:00 -07:00
table_cache.h Change RocksDB License 2017-07-15 16:11:23 -07:00
table_properties_collector_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
table_properties_collector.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
table_properties_collector.h Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
transaction_log_impl.cc Enable two write queues for transactions 2017-10-23 14:27:04 -07:00
transaction_log_impl.h Change RocksDB License 2017-07-15 16:11:23 -07:00
version_builder_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
version_builder.cc VersionBuilder: Erase with iterators for better performance 2017-10-17 10:12:37 -07:00
version_builder.h Allow DB reopen with reduced options.num_levels 2017-08-24 16:10:54 -07:00
version_edit_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
version_edit.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
version_edit.h Change RocksDB License 2017-07-15 16:11:23 -07:00
version_set_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
version_set.cc Make writable_file_max_buffer_size dynamic 2017-10-31 13:56:35 -07:00
version_set.h Make writable_file_max_buffer_size dynamic 2017-10-31 13:56:35 -07:00
wal_manager_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
wal_manager.cc Replace dynamic_cast<> 2017-07-28 16:27:16 -07:00
wal_manager.h Change RocksDB License 2017-07-15 16:11:23 -07:00
write_batch_base.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
write_batch_internal.h WritePrepared Txn: Optimize for recoverable state 2017-11-01 17:26:46 -07:00
write_batch_test.cc Enable MSVC W4 with a few exceptions. Fix warnings and bugs 2017-10-19 10:57:12 -07:00
write_batch.cc WritePrepared Txn: Optimize for recoverable state 2017-11-01 17:26:46 -07:00
write_callback_test.cc Exclude incompatible options in test 2017-09-12 14:58:46 -07:00
write_callback.h Change RocksDB License 2017-07-15 16:11:23 -07:00
write_controller_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
write_controller.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
write_controller.h Change RocksDB License 2017-07-15 16:11:23 -07:00
write_thread.cc WritePrepared Txn: Recovery 2017-09-28 16:56:45 -07:00
write_thread.h WritePrepared Txn: Recovery 2017-09-28 16:56:45 -07:00