summaryrefslogtreecommitdiff
path: root/src/mongo/db/storage/wiredtiger/wiredtiger_init.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/storage/wiredtiger/wiredtiger_init.cpp')
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_init.cpp129
1 files changed, 61 insertions, 68 deletions
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_init.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_init.cpp
index 23d69d934c2..45888019c49 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_init.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_init.cpp
@@ -52,81 +52,74 @@
namespace mongo {
- namespace {
- class WiredTigerFactory : public StorageEngine::Factory {
- public:
- virtual ~WiredTigerFactory(){}
- virtual StorageEngine* create(const StorageGlobalParams& params,
- const StorageEngineLockFile& lockFile) const {
- if (lockFile.createdByUncleanShutdown()) {
- warning() << "Recovering data from the last clean checkpoint.";
- }
- WiredTigerKVEngine* kv = new WiredTigerKVEngine( params.dbpath,
- wiredTigerGlobalOptions.engineConfig,
- params.dur,
- params.repair );
- kv->setRecordStoreExtraOptions( wiredTigerGlobalOptions.collectionConfig );
- kv->setSortedDataInterfaceExtraOptions( wiredTigerGlobalOptions.indexConfig );
- // Intentionally leaked.
- new WiredTigerServerStatusSection(kv);
- new WiredTigerEngineRuntimeConfigParameter(kv);
-
- KVStorageEngineOptions options;
- options.directoryPerDB = params.directoryperdb;
- options.directoryForIndexes = wiredTigerGlobalOptions.directoryForIndexes;
- options.forRepair = params.repair;
- return new KVStorageEngine( kv, options );
- }
-
- virtual StringData getCanonicalName() const {
- return kWiredTigerEngineName;
- }
-
- virtual Status validateCollectionStorageOptions(const BSONObj& options) const {
- return WiredTigerRecordStore::parseOptionsField(options).getStatus();
- }
-
- virtual Status validateIndexStorageOptions(const BSONObj& options) const {
- return WiredTigerIndex::parseIndexOptions(options).getStatus();
- }
-
- virtual Status validateMetadata(const StorageEngineMetadata& metadata,
- const StorageGlobalParams& params) const {
- Status status = metadata.validateStorageEngineOption(
- "directoryPerDB", params.directoryperdb);
- if (!status.isOK()) {
- return status;
- }
-
- status = metadata.validateStorageEngineOption(
- "directoryForIndexes", wiredTigerGlobalOptions.directoryForIndexes);
- if (!status.isOK()) {
- return status;
- }
+namespace {
+class WiredTigerFactory : public StorageEngine::Factory {
+public:
+ virtual ~WiredTigerFactory() {}
+ virtual StorageEngine* create(const StorageGlobalParams& params,
+ const StorageEngineLockFile& lockFile) const {
+ if (lockFile.createdByUncleanShutdown()) {
+ warning() << "Recovering data from the last clean checkpoint.";
+ }
+ WiredTigerKVEngine* kv = new WiredTigerKVEngine(
+ params.dbpath, wiredTigerGlobalOptions.engineConfig, params.dur, params.repair);
+ kv->setRecordStoreExtraOptions(wiredTigerGlobalOptions.collectionConfig);
+ kv->setSortedDataInterfaceExtraOptions(wiredTigerGlobalOptions.indexConfig);
+ // Intentionally leaked.
+ new WiredTigerServerStatusSection(kv);
+ new WiredTigerEngineRuntimeConfigParameter(kv);
+
+ KVStorageEngineOptions options;
+ options.directoryPerDB = params.directoryperdb;
+ options.directoryForIndexes = wiredTigerGlobalOptions.directoryForIndexes;
+ options.forRepair = params.repair;
+ return new KVStorageEngine(kv, options);
+ }
- return Status::OK();
- }
+ virtual StringData getCanonicalName() const {
+ return kWiredTigerEngineName;
+ }
- virtual BSONObj createMetadataOptions(const StorageGlobalParams& params) const {
- BSONObjBuilder builder;
- builder.appendBool("directoryPerDB", params.directoryperdb);
- builder.appendBool("directoryForIndexes",
- wiredTigerGlobalOptions.directoryForIndexes);
- WiredTigerCustomizationHooks::get(getGlobalServiceContext())->appendUID(&builder);
- return builder.obj();
- }
+ virtual Status validateCollectionStorageOptions(const BSONObj& options) const {
+ return WiredTigerRecordStore::parseOptionsField(options).getStatus();
+ }
- };
- } // namespace
+ virtual Status validateIndexStorageOptions(const BSONObj& options) const {
+ return WiredTigerIndex::parseIndexOptions(options).getStatus();
+ }
- MONGO_INITIALIZER_WITH_PREREQUISITES(WiredTigerEngineInit,
- ("SetGlobalEnvironment"))
- (InitializerContext* context ) {
+ virtual Status validateMetadata(const StorageEngineMetadata& metadata,
+ const StorageGlobalParams& params) const {
+ Status status =
+ metadata.validateStorageEngineOption("directoryPerDB", params.directoryperdb);
+ if (!status.isOK()) {
+ return status;
+ }
- getGlobalServiceContext()->registerStorageEngine(kWiredTigerEngineName,
- new WiredTigerFactory());
+ status = metadata.validateStorageEngineOption("directoryForIndexes",
+ wiredTigerGlobalOptions.directoryForIndexes);
+ if (!status.isOK()) {
+ return status;
+ }
return Status::OK();
}
+ virtual BSONObj createMetadataOptions(const StorageGlobalParams& params) const {
+ BSONObjBuilder builder;
+ builder.appendBool("directoryPerDB", params.directoryperdb);
+ builder.appendBool("directoryForIndexes", wiredTigerGlobalOptions.directoryForIndexes);
+ WiredTigerCustomizationHooks::get(getGlobalServiceContext())->appendUID(&builder);
+ return builder.obj();
+ }
+};
+} // namespace
+
+MONGO_INITIALIZER_WITH_PREREQUISITES(WiredTigerEngineInit, ("SetGlobalEnvironment"))
+(InitializerContext* context) {
+ getGlobalServiceContext()->registerStorageEngine(kWiredTigerEngineName,
+ new WiredTigerFactory());
+
+ return Status::OK();
+}
}