diff options
author | Eric Milkie <milkie@10gen.com> | 2014-11-18 11:45:45 -0500 |
---|---|---|
committer | Eric Milkie <milkie@10gen.com> | 2014-11-19 16:25:21 -0500 |
commit | 0f8898e95d6096b306fe655ef7141a01f1e71100 (patch) | |
tree | 264b8047bf3f79cdace2d3bfd192b48e30d7cb3e | |
parent | f27fba8fddbb50d0e7ad2522a0a3b766b456b29d (diff) | |
download | mongo-0f8898e95d6096b306fe655ef7141a01f1e71100.tar.gz |
SERVER-16205 initialize KV in the constructor, rather than in _finishInit
-rw-r--r-- | src/mongo/db/storage/kv/kv_storage_engine.cpp | 49 | ||||
-rw-r--r-- | src/mongo/db/storage/kv/kv_storage_engine.h | 1 |
2 files changed, 20 insertions, 30 deletions
diff --git a/src/mongo/db/storage/kv/kv_storage_engine.cpp b/src/mongo/db/storage/kv/kv_storage_engine.cpp index 260e96a0014..3d29513d588 100644 --- a/src/mongo/db/storage/kv/kv_storage_engine.cpp +++ b/src/mongo/db/storage/kv/kv_storage_engine.cpp @@ -67,30 +67,7 @@ namespace mongo { KVStorageEngine::KVStorageEngine( KVEngine* engine ) : _engine( engine ) - , _initialized( false ) , _supportsDocLocking(_engine->supportsDocLocking()) { - } - - void KVStorageEngine::cleanShutdown(OperationContext* txn) { - - for ( DBMap::const_iterator it = _dbs.begin(); it != _dbs.end(); ++it ) { - delete it->second; - } - _dbs.clear(); - - _catalog.reset( NULL ); - _catalogRecordStore.reset( NULL ); - - _engine->cleanShutdown(txn); - // intentionally not deleting _engine - } - - KVStorageEngine::~KVStorageEngine() { - } - - void KVStorageEngine::finishInit() { - if ( _initialized ) - return; OperationContextNoop opCtx( _engine->newRecoveryUnit() ); { @@ -167,11 +144,29 @@ namespace mongo { } } - _initialized = true; + } + + void KVStorageEngine::cleanShutdown(OperationContext* txn) { + + for ( DBMap::const_iterator it = _dbs.begin(); it != _dbs.end(); ++it ) { + delete it->second; + } + _dbs.clear(); + + _catalog.reset( NULL ); + _catalogRecordStore.reset( NULL ); + + _engine->cleanShutdown(txn); + // intentionally not deleting _engine + } + + KVStorageEngine::~KVStorageEngine() { + } + + void KVStorageEngine::finishInit() { } RecoveryUnit* KVStorageEngine::newRecoveryUnit( OperationContext* opCtx ) { - invariant( _initialized ); if ( !_engine ) { // shutdown return NULL; @@ -180,7 +175,6 @@ namespace mongo { } void KVStorageEngine::listDatabases( std::vector<std::string>* out ) const { - invariant( _initialized ); boost::mutex::scoped_lock lk( _dbsLock ); for ( DBMap::const_iterator it = _dbs.begin(); it != _dbs.end(); ++it ) { if ( it->second->isEmpty() ) @@ -191,7 +185,6 @@ namespace mongo { DatabaseCatalogEntry* KVStorageEngine::getDatabaseCatalogEntry( OperationContext* opCtx, const StringData& dbName ) { - invariant( _initialized ); boost::mutex::scoped_lock lk( _dbsLock ); KVDatabaseCatalogEntry*& db = _dbs[dbName.toString()]; if ( !db ) { @@ -202,13 +195,11 @@ namespace mongo { } Status KVStorageEngine::closeDatabase( OperationContext* txn, const StringData& db ) { - invariant( _initialized ); // This is ok to be a no-op as there is no database layer in kv. return Status::OK(); } Status KVStorageEngine::dropDatabase( OperationContext* txn, const StringData& db ) { - invariant( _initialized ); KVDatabaseCatalogEntry* entry; { diff --git a/src/mongo/db/storage/kv/kv_storage_engine.h b/src/mongo/db/storage/kv/kv_storage_engine.h index 916f77d4f94..803adf06111 100644 --- a/src/mongo/db/storage/kv/kv_storage_engine.h +++ b/src/mongo/db/storage/kv/kv_storage_engine.h @@ -94,7 +94,6 @@ namespace mongo { // This must be the first member so it is destroyed last. boost::scoped_ptr<KVEngine> _engine; - bool _initialized; const bool _supportsDocLocking; boost::scoped_ptr<RecordStore> _catalogRecordStore; |