diff options
author | Henrik Edin <henrik.edin@mongodb.com> | 2020-11-03 12:42:38 -0500 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-11-13 20:15:34 +0000 |
commit | 8f9823f644d0b6beba8a301866141a578d278534 (patch) | |
tree | 1ef4bc439da93a2b39cff7c96a975668c27e7070 /src/mongo/db/free_mon | |
parent | b670258ac185ecea0492c742f2f50da9d8ab618f (diff) | |
download | mongo-8f9823f644d0b6beba8a301866141a578d278534.tar.gz |
SERVER-52556 Versioned CollectionCatalog. Writes are performed using copy-on-write.
Internal mutexes when reading CollectionCatalog are removed, just one mutex for writes are needed.
Lock-free reads helper AutoGetCollectionForReadLockFree stashes a CollectionCatalog consistent with snapshot on OperationContext
Diffstat (limited to 'src/mongo/db/free_mon')
-rw-r--r-- | src/mongo/db/free_mon/free_mon_mongod.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/mongo/db/free_mon/free_mon_mongod.cpp b/src/mongo/db/free_mon/free_mon_mongod.cpp index 2a76481037d..327898b392a 100644 --- a/src/mongo/db/free_mon/free_mon_mongod.cpp +++ b/src/mongo/db/free_mon/free_mon_mongod.cpp @@ -232,9 +232,9 @@ public: } void collect(OperationContext* opCtx, BSONObjBuilder& builder) { - auto& catalog = CollectionCatalog::get(opCtx); + auto catalog = CollectionCatalog::get(opCtx); for (auto& nss : _namespaces) { - auto optUUID = catalog.lookupUUIDByNSS(opCtx, nss); + auto optUUID = catalog->lookupUUIDByNSS(opCtx, nss); if (optUUID) { builder << nss.toString() << optUUID.get(); } |