summaryrefslogtreecommitdiff
path: root/options
diff options
context:
space:
mode:
authorEli Pozniansky <elipoz@gmail.com>2019-07-19 11:54:38 -0700
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>2019-07-19 12:00:19 -0700
commitc129c75fb7810959a3da548d03bd3cededcb0a8f (patch)
tree5ad547eab2dce88891158ba49552c0b8bd821d65 /options
parent6bb3b4b567452ff88b6023d3db61bba2e4125d6c (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.cc6
-rw-r--r--options/db_options.h1
-rw-r--r--options/options_helper.cc5
-rw-r--r--options/options_settable_test.cc3
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),