diff options
author | Gregory Wlodarek <gregory.wlodarek@mongodb.com> | 2020-02-28 14:35:27 -0500 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-02-28 21:18:43 +0000 |
commit | 436d659132e7ec8bc38afc1b5ee0ba568c860a8c (patch) | |
tree | 41f8056840fba5c901325f18fb30cb1e223c8dec | |
parent | 9cc8d023dd2852f4db2065fc40825641e4c7ae1e (diff) | |
download | mongo-436d659132e7ec8bc38afc1b5ee0ba568c860a8c.tar.gz |
SERVER-46488 queryableBackupMode should recover from the journal files on startup
-rw-r--r-- | src/mongo/db/mongod_options.cpp | 1 | ||||
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp | 48 |
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. |