summaryrefslogtreecommitdiff
path: root/src/mongo/db
diff options
context:
space:
mode:
authorMatthew Russotto <matthew.russotto@mongodb.com>2021-09-08 14:20:50 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-09-08 16:12:10 +0000
commit35d5ff7ad0701721d3352cf7b0848d4b87c31c84 (patch)
treea3a9c0c9d5a9e01f0207cd17318f112d007d3d21 /src/mongo/db
parent307cc81f1af0d00312e0fa802373b92cb60a579f (diff)
downloadmongo-35d5ff7ad0701721d3352cf7b0848d4b87c31c84.tar.gz
SERVER-59723 Export via getParameter command line settings required f…
Diffstat (limited to 'src/mongo/db')
-rw-r--r--src/mongo/db/storage/storage_options.cpp35
-rw-r--r--src/mongo/db/storage/storage_parameters.idl17
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_parameters.cpp20
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_parameters.idl8
4 files changed, 80 insertions, 0 deletions
diff --git a/src/mongo/db/storage/storage_options.cpp b/src/mongo/db/storage/storage_options.cpp
index fecfe911f01..0cf8c7271dc 100644
--- a/src/mongo/db/storage/storage_options.cpp
+++ b/src/mongo/db/storage/storage_options.cpp
@@ -31,6 +31,7 @@
#include "mongo/db/storage/storage_options.h"
+#include "mongo/db/storage/storage_parameters_gen.h"
#include "mongo/platform/compiler.h"
#include "mongo/util/str.h"
@@ -63,6 +64,40 @@ void StorageGlobalParams::reset() {
StorageGlobalParams storageGlobalParams;
+// Storage global parameters exported read-only via the getParameter mechanism.
+// The IDL has no ability to specify 'none' as set_at type,
+// so use 'startup' in the IDL file, then override to none here.
+StorageDbpathParameter::StorageDbpathParameter(StringData name, ServerParameterType)
+ : ServerParameter(
+ ServerParameterSet::getGlobal(), name, false /* allowedToChangeAtStartup */, false
+ /* allowedToChangeAtRuntime */) {}
+StorageDirectoryPerDbParameter::StorageDirectoryPerDbParameter(StringData name, ServerParameterType)
+ : ServerParameter(
+ ServerParameterSet::getGlobal(), name, false /* allowedToChangeAtStartup */, false
+ /* allowedToChangeAtRuntime */) {}
+
+Status StorageDbpathParameter::setFromString(const std::string&) {
+ return {ErrorCodes::IllegalOperation,
+ str::stream() << name() << " cannot be set via setParameter"};
+};
+Status StorageDirectoryPerDbParameter::setFromString(const std::string&) {
+ return {ErrorCodes::IllegalOperation,
+ str::stream() << name() << " cannot be set via setParameter"};
+};
+
+void StorageDbpathParameter::append(OperationContext* opCtx,
+ BSONObjBuilder& builder,
+ const std::string& name) {
+ builder.append(name, storageGlobalParams.dbpath);
+}
+
+void StorageDirectoryPerDbParameter::append(OperationContext* opCtx,
+ BSONObjBuilder& builder,
+ const std::string& name) {
+ builder.append(name, storageGlobalParams.directoryperdb);
+}
+
+
/**
* The directory where the mongod instance stores its data.
*/
diff --git a/src/mongo/db/storage/storage_parameters.idl b/src/mongo/db/storage/storage_parameters.idl
index 72b5659f5e6..a326b8c72c2 100644
--- a/src/mongo/db/storage/storage_parameters.idl
+++ b/src/mongo/db/storage/storage_parameters.idl
@@ -79,6 +79,23 @@ server_parameters:
validator:
gte: 1
+ storageGlobalParams.dbpath:
+ description: 'Read-only view of storage database path'
+ # Actually, never. TODO(SERVER-59813): Use correct IDL for this once support is added.
+ set_at: startup
+ cpp_class:
+ name: StorageDbpathParameter
+ override_ctor: true
+
+ storageGlobalParams.directoryperdb:
+ description: 'Read-only view of directory per db config parameter'
+ # Actually, never. TODO(SERVER-59813): Use correct IDL for this once support is added.
+ set_at: startup
+ cpp_class:
+ name: StorageDirectoryPerDbParameter
+ override_ctor: true
+
+
feature_flags:
featureFlagTimeseriesCollection:
description: "When enabled, support for time-series collections"
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_parameters.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_parameters.cpp
index 84d5ff1a18f..df10ee2fa96 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_parameters.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_parameters.cpp
@@ -30,6 +30,7 @@
#include "mongo/platform/basic.h"
+#include "mongo/db/storage/wiredtiger/wiredtiger_global_options.h"
#include "mongo/db/storage/wiredtiger/wiredtiger_parameters_gen.h"
#include "mongo/logv2/log.h"
#include "mongo/util/str.h"
@@ -77,4 +78,23 @@ Status WiredTigerEngineRuntimeConfigParameter::setFromString(const std::string&
return Status::OK();
}
+// WiredTiger parameter exported read-only via the getParameter mechanism.
+// The IDL has no ability to specify 'none' as set_at type,
+// so use 'startup' in the IDL file, then override to none here.
+WiredTigerDirectoryForIndexesParameter::WiredTigerDirectoryForIndexesParameter(StringData name,
+ ServerParameterType)
+ : ServerParameter(
+ ServerParameterSet::getGlobal(), name, false /* allowedToChangeAtStartup */, false
+ /* allowedToChangeAtRuntime */) {}
+
+Status WiredTigerDirectoryForIndexesParameter::setFromString(const std::string&) {
+ return {ErrorCodes::IllegalOperation,
+ str::stream() << name() << " cannot be set via setParameter"};
+};
+void WiredTigerDirectoryForIndexesParameter::append(OperationContext* opCtx,
+ BSONObjBuilder& builder,
+ const std::string& name) {
+ builder.append(name, wiredTigerGlobalOptions.directoryForIndexes);
+}
+
} // namespace mongo
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_parameters.idl b/src/mongo/db/storage/wiredtiger/wiredtiger_parameters.idl
index 6b110639515..c588ded7b2e 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_parameters.idl
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_parameters.idl
@@ -156,3 +156,11 @@ server_parameters:
default: 10
validator:
gte: 1
+
+ wiredTigerDirectoryForIndexes:
+ description: 'Read-only view of DirectoryForIndexes config parameter'
+ # Actually, never. TODO(SERVER-59813): Use correct IDL for this once support is added.
+ set_at: startup
+ cpp_class:
+ name: WiredTigerDirectoryForIndexesParameter
+ override_ctor: true