summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Wlodarek <gregory.wlodarek@mongodb.com>2020-02-28 14:35:27 -0500
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-02-28 21:18:43 +0000
commit436d659132e7ec8bc38afc1b5ee0ba568c860a8c (patch)
tree41f8056840fba5c901325f18fb30cb1e223c8dec
parent9cc8d023dd2852f4db2065fc40825641e4c7ae1e (diff)
downloadmongo-436d659132e7ec8bc38afc1b5ee0ba568c860a8c.tar.gz
SERVER-46488 queryableBackupMode should recover from the journal files on startup
-rw-r--r--src/mongo/db/mongod_options.cpp1
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp48
2 files changed, 23 insertions, 26 deletions
diff --git a/src/mongo/db/mongod_options.cpp b/src/mongo/db/mongod_options.cpp
index 11c769ca95c..44ccfbdcfd5 100644
--- a/src/mongo/db/mongod_options.cpp
+++ b/src/mongo/db/mongod_options.cpp
@@ -431,7 +431,6 @@ Status storeMongodOptions(const moe::Environment& params) {
if (params.count("storage.queryableBackupMode") &&
params["storage.queryableBackupMode"].as<bool>()) {
storageGlobalParams.readOnly = true;
- storageGlobalParams.dur = false;
}
if (params.count("storage.groupCollections")) {
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp
index 776f8886045..09fc723eed9 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp
@@ -839,39 +839,37 @@ WiredTigerKVEngine::WiredTigerKVEngine(const std::string& canonicalName,
// The setting may have a later setting override it if not using the journal. We make it
// unconditional here because even nojournal may need this setting if it is a transition
// from using the journal.
- if (!_readOnly) {
- // If we're readOnly skip all WAL-related settings.
- ss << "log=(enabled=true,archive=true,path=journal,compressor=";
- ss << wiredTigerGlobalOptions.journalCompressor << "),";
- ss << "file_manager=(close_idle_time=" << gWiredTigerFileHandleCloseIdleTime
- << ",close_scan_interval=" << gWiredTigerFileHandleCloseScanInterval
- << ",close_handle_minimum=" << gWiredTigerFileHandleCloseMinimum << "),";
- ss << "statistics_log=(wait=" << wiredTigerGlobalOptions.statisticsLogDelaySecs << "),";
-
- if (shouldLog(::mongo::logv2::LogComponent::kStorageRecovery,
- logv2::LogSeverity::Debug(3))) {
- ss << "verbose=[recovery_progress,checkpoint_progress,compact_progress,recovery],";
- } else {
- ss << "verbose=[recovery_progress,checkpoint_progress,compact_progress],";
- }
+ ss << "log=(enabled=true,archive=" << (_readOnly ? "false" : "true")
+ << ",path=journal,compressor=";
+ ss << wiredTigerGlobalOptions.journalCompressor << "),";
+ ss << "file_manager=(close_idle_time=" << gWiredTigerFileHandleCloseIdleTime
+ << ",close_scan_interval=" << gWiredTigerFileHandleCloseScanInterval
+ << ",close_handle_minimum=" << gWiredTigerFileHandleCloseMinimum << "),";
+ ss << "statistics_log=(wait=" << wiredTigerGlobalOptions.statisticsLogDelaySecs << "),";
+
+ if (shouldLog(::mongo::logv2::LogComponent::kStorageRecovery, logv2::LogSeverity::Debug(3))) {
+ ss << "verbose=[recovery_progress,checkpoint_progress,compact_progress,recovery],";
+ } else {
+ ss << "verbose=[recovery_progress,checkpoint_progress,compact_progress],";
+ }
- if (kDebugBuild) {
- // Enable debug write-ahead logging for all tables under debug build.
- ss << "debug_mode=(table_logging=true,";
- // For select debug builds, support enabling WiredTiger eviction debug mode. This uses
- // more aggressive eviction tactics, but may have a negative performance impact.
- if (gWiredTigerEvictionDebugMode) {
- ss << "eviction=true,";
- }
- ss << "),";
+ if (kDebugBuild) {
+ // Enable debug write-ahead logging for all tables under debug build.
+ ss << "debug_mode=(table_logging=true,";
+ // For select debug builds, support enabling WiredTiger eviction debug mode. This uses
+ // more aggressive eviction tactics, but may have a negative performance impact.
+ if (gWiredTigerEvictionDebugMode) {
+ ss << "eviction=true,";
}
+ ss << "),";
}
+
ss << WiredTigerCustomizationHooks::get(getGlobalServiceContext())
->getTableCreateConfig("system");
ss << WiredTigerExtensions::get(getGlobalServiceContext())->getOpenExtensionsConfig();
ss << extraOpenOptions;
- if (!_durable && !_readOnly) {
+ if (!_durable) {
// If we started without the journal, but previously used the journal then open with the
// WT log enabled to perform any unclean shutdown recovery and then close and reopen in
// the normal path without the journal.