diff options
author | Matthew Russotto <matthew.russotto@mongodb.com> | 2021-09-08 14:20:50 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-09-08 16:12:10 +0000 |
commit | 35d5ff7ad0701721d3352cf7b0848d4b87c31c84 (patch) | |
tree | a3a9c0c9d5a9e01f0207cd17318f112d007d3d21 /src/mongo/db | |
parent | 307cc81f1af0d00312e0fa802373b92cb60a579f (diff) | |
download | mongo-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.cpp | 35 | ||||
-rw-r--r-- | src/mongo/db/storage/storage_parameters.idl | 17 | ||||
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_parameters.cpp | 20 | ||||
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_parameters.idl | 8 |
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 |