diff options
author | Eli Pozniansky <elipoz@gmail.com> | 2019-07-19 11:54:38 -0700 |
---|---|---|
committer | Facebook Github Bot <facebook-github-bot@users.noreply.github.com> | 2019-07-19 12:00:19 -0700 |
commit | c129c75fb7810959a3da548d03bd3cededcb0a8f (patch) | |
tree | 5ad547eab2dce88891158ba49552c0b8bd821d65 /options | |
parent | 6bb3b4b567452ff88b6023d3db61bba2e4125d6c (diff) |
Added log_readahead_size option to control prefetching for Log::Reader (#5592)
Summary:
Added log_readahead_size option to control prefetching for Log::Reader.
This is mostly useful for reading a remotely located log, as it can save the number of round-trips when reading it.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/5592
Differential Revision: D16362989
Pulled By: elipoz
fbshipit-source-id: c5d4d5245a44008cd59879640efff70c091ad3e8
Diffstat (limited to 'options')
-rw-r--r-- | options/db_options.cc | 6 | ||||
-rw-r--r-- | options/db_options.h | 1 | ||||
-rw-r--r-- | options/options_helper.cc | 5 | ||||
-rw-r--r-- | options/options_settable_test.cc | 3 |
4 files changed, 12 insertions, 3 deletions
diff --git a/options/db_options.cc b/options/db_options.cc index 490a37080..3756c555c 100644 --- a/options/db_options.cc +++ b/options/db_options.cc @@ -85,7 +85,8 @@ ImmutableDBOptions::ImmutableDBOptions(const DBOptions& options) manual_wal_flush(options.manual_wal_flush), atomic_flush(options.atomic_flush), avoid_unnecessary_blocking_io(options.avoid_unnecessary_blocking_io), - persist_stats_to_disk(options.persist_stats_to_disk) { + persist_stats_to_disk(options.persist_stats_to_disk), + log_readahead_size(options.log_readahead_size) { } void ImmutableDBOptions::Dump(Logger* log) const { @@ -225,6 +226,9 @@ void ImmutableDBOptions::Dump(Logger* log) const { avoid_unnecessary_blocking_io); ROCKS_LOG_HEADER(log, " Options.persist_stats_to_disk: %u", persist_stats_to_disk); + ROCKS_LOG_HEADER( + log, " Options.log_readahead_size: %" ROCKSDB_PRIszt, + log_readahead_size); } MutableDBOptions::MutableDBOptions() diff --git a/options/db_options.h b/options/db_options.h index 92eea4ecf..e39e2903f 100644 --- a/options/db_options.h +++ b/options/db_options.h @@ -82,6 +82,7 @@ struct ImmutableDBOptions { bool atomic_flush; bool avoid_unnecessary_blocking_io; bool persist_stats_to_disk; + size_t log_readahead_size; }; struct MutableDBOptions { diff --git a/options/options_helper.cc b/options/options_helper.cc index 47aba7ad0..922ece3a8 100644 --- a/options/options_helper.cc +++ b/options/options_helper.cc @@ -138,7 +138,7 @@ DBOptions BuildDBOptions(const ImmutableDBOptions& immutable_db_options, options.atomic_flush = immutable_db_options.atomic_flush; options.avoid_unnecessary_blocking_io = immutable_db_options.avoid_unnecessary_blocking_io; - + options.log_readahead_size = immutable_db_options.log_readahead_size; return options; } @@ -1664,6 +1664,9 @@ std::unordered_map<std::string, OptionTypeInfo> {offsetof(struct DBOptions, avoid_unnecessary_blocking_io), OptionType::kBoolean, OptionVerificationType::kNormal, false, offsetof(struct ImmutableDBOptions, avoid_unnecessary_blocking_io)}}, + {"log_readahead_size", + {offsetof(struct DBOptions, log_readahead_size), OptionType::kSizeT, + OptionVerificationType::kNormal, false, 0}}, }; std::unordered_map<std::string, BlockBasedTableOptions::IndexType> diff --git a/options/options_settable_test.cc b/options/options_settable_test.cc index f0b79e372..e60fd6f9e 100644 --- a/options/options_settable_test.cc +++ b/options/options_settable_test.cc @@ -295,7 +295,8 @@ TEST_F(OptionsSettableTest, DBOptionsAllFieldsSettable) { "manual_wal_flush=false;" "seq_per_batch=false;" "atomic_flush=false;" - "avoid_unnecessary_blocking_io=false", + "avoid_unnecessary_blocking_io=false;" + "log_readahead_size=0", new_options)); ASSERT_EQ(unset_bytes_base, NumUnsetBytes(new_options_ptr, sizeof(DBOptions), |