summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Milkie <milkie@10gen.com>2014-11-18 11:45:45 -0500
committerEric Milkie <milkie@10gen.com>2014-11-19 16:25:21 -0500
commit0f8898e95d6096b306fe655ef7141a01f1e71100 (patch)
tree264b8047bf3f79cdace2d3bfd192b48e30d7cb3e
parentf27fba8fddbb50d0e7ad2522a0a3b766b456b29d (diff)
downloadmongo-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.cpp49
-rw-r--r--src/mongo/db/storage/kv/kv_storage_engine.h1
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;