diff options
author | Esha Maharishi <esha.maharishi@mongodb.com> | 2017-10-12 14:07:26 -0400 |
---|---|---|
committer | Esha Maharishi <esha.maharishi@mongodb.com> | 2017-10-12 18:06:01 -0400 |
commit | ba0ee77c61c39b077d0975b7487099c5985c7b18 (patch) | |
tree | 5814af9a08cfe80885d519a147bb2264c199bff5 /src/mongo/db/s/config/configsvr_create_database_command.cpp | |
parent | 2b10c2876de50302150167aef80b5bf4b6662139 (diff) | |
download | mongo-ba0ee77c61c39b077d0975b7487099c5985c7b18.tar.gz |
SERVER-30733 make distlocks hierarchical for metadata commands on databases and collections
Diffstat (limited to 'src/mongo/db/s/config/configsvr_create_database_command.cpp')
-rw-r--r-- | src/mongo/db/s/config/configsvr_create_database_command.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mongo/db/s/config/configsvr_create_database_command.cpp b/src/mongo/db/s/config/configsvr_create_database_command.cpp index f752ffa6a18..567216846d9 100644 --- a/src/mongo/db/s/config/configsvr_create_database_command.cpp +++ b/src/mongo/db/s/config/configsvr_create_database_command.cpp @@ -115,6 +115,16 @@ public: // Make sure to force update of any stale metadata ON_BLOCK_EXIT([opCtx, dbname] { Grid::get(opCtx)->catalogCache()->purgeDatabase(dbname); }); + // Remove the backwards compatible lock after 3.6 ships. + auto const catalogClient = Grid::get(opCtx)->catalogClient(); + auto backwardsCompatibleDbDistLock = uassertStatusOK( + catalogClient->getDistLockManager()->lock(opCtx, + dbname + "-movePrimary", + "createDatabase", + DistLockManager::kDefaultLockTimeout)); + auto dbDistLock = uassertStatusOK(catalogClient->getDistLockManager()->lock( + opCtx, dbname, "createDatabase", DistLockManager::kDefaultLockTimeout)); + uassertStatusOK(ShardingCatalogManager::get(opCtx)->createDatabase(opCtx, dbname)); return true; |