# Copyright (C) 2019-present MongoDB, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the Server Side Public License, version 1, # as published by MongoDB, Inc. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # Server Side Public License for more details. # # You should have received a copy of the Server Side Public License # along with this program. If not, see # . # # As a special exception, the copyright holders give permission to link the # code of portions of this program with the OpenSSL library under certain # conditions as described in each individual source file and distribute # linked combinations including the program with the OpenSSL library. You # must comply with the Server Side Public License in all respects for # all of the code used other than as permitted herein. If you modify file(s) # with this exception, you may extend this exception to your version of the # file(s), but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. If you delete this # exception statement from all source files in the program, then also delete # it in the license file. # global: cpp_namespace: "mongo" cpp_includes: - "mongo/db/mongod_options.h" - "mongo/db/storage/storage_options.h" configs: section: 'Storage options' source: [ yaml, cli, ini ] initializer: register: addMongodStorageOptions server_parameters: recoverToOplogTimestamp: description: >- When --queryableBackupMode is supplied on startup along with this server parameter, the server will perform replication recovery up to and including the provided timestamp. The parameter should be passed in as a JSON string with the following format: {timestamp: Timestamp(123, 456)}. set_at: [ startup ] cpp_vartype: std::string cpp_varname: recoverToOplogTimestamp redact: false notablescan: # NOT recommended for production use. description: >- Whether all queries must use indexes. If true, MongoDB will not execute queries that require a table scan and will return an error. set_at: [ startup, runtime ] cpp_varname: 'storageGlobalParams.noTableScan' redact: false allowDocumentsGreaterThanMaxUserSize: description: >- Internal, allows users to insert documents greater than the 16mb maximum user BSON size. This parameter is intended to be used exclusively with the backup/restore process. During some restores, we insert oplog entries from a source cluster directly into a destination cluster's oplog. These oplog entries may exceed the user maximum BSON size, and thus require this parameter for the insert to succeed. These entries were already validated on the source cluster, making the inserts safe. Note that the node must be in standalone mode to enable this parameter, and the documents must still be less than the 16mb + 16kb maximum internal BSON size. set_at: [ startup ] cpp_vartype: bool cpp_varname: gAllowDocumentsGreaterThanMaxUserSize default: false redact: false configs: 'storage.engine': description: 'What storage engine to use - defaults to wiredTiger if no data files present' short_name: storageEngine arg_vartype: String 'storage.dbPath': description: expr: 'storageDBPathDescription()' is_constexpr: false short_name: dbpath arg_vartype: String 'storage.directoryPerDB': description: 'Each database will be stored in a separate directory' short_name: directoryperdb arg_vartype: Switch 'storage.queryableBackupMode': description: >- Enables queryable backup mode which starts the storage engine in read/write mode to allow for replication recovery. After replication recovery the server above the storage engine layer will be in read-only mode. short_name: queryableBackupMode arg_vartype: Switch hidden: true 'storage.groupCollections': description: >- Group collections - if true the storage engine may group collections within a database into a shared record store short_name: groupCollections arg_vartype: Switch hidden: true # This config has a setParameter alias in storage_paramaters.idl. To resolve the conflict, the # default is encoded the StorageGlobalParams. 'storage.syncPeriodSecs': description: 'Seconds between disk syncs' short_name: syncdelay arg_vartype: Double validator: gte: 0.0 lte: { expr: 'StorageGlobalParams::kMaxSyncdelaySecs' } # This config has a setParameter alias in storage_paramaters.idl. To resolve the conflict, the # default is encoded the StorageGlobalParams. 'storage.journal.commitIntervalMs': description: 'how often to group/batch commit (ms)' short_name: 'journalCommitInterval' arg_vartype: Int validator: gte: 1 lte: { expr: 'StorageGlobalParams::kMaxJournalCommitIntervalMs' } upgrade: description: 'Upgrade db if needed' arg_vartype: Switch source: [ cli, ini ] repair: description: 'Run repair on all dbs' arg_vartype: Switch source: [ cli, ini ] restore: description: >- This should only be used when restoring from a backup. Mongod will behave differently by handling collections with missing data files, allowing database renames, skipping oplog entries for collections not restored and more. arg_vartype: Switch source: [ cli, ini ] 'storage.oplogMinRetentionHours': description: 'Minimum number of hours to preserve in the oplog. Default is 0 (turned off). Fractions are allowed (e.g. 1.5 hours)' short_name: oplogMinRetentionHours arg_vartype: Double default: 0.0 validator: gte: 0.0