summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/create_collection_coordinator.h
diff options
context:
space:
mode:
authorTommaso Tocci <tommaso.tocci@mongodb.com>2022-03-22 12:24:59 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-03-22 12:52:04 +0000
commitd10d9bd036a9133f6fc3877f5dfc1f4a2c26e9c9 (patch)
tree4fdae86ad4cd0de768c3966e9122faf16f4e2350 /src/mongo/db/s/create_collection_coordinator.h
parent5a0ab65aa16f3f70dc4dfb08be53bd4c283c28f0 (diff)
downloadmongo-d10d9bd036a9133f6fc3877f5dfc1f4a2c26e9c9.tar.gz
SERVER-64559 Simplify critical section reason for create collection coordinator
Diffstat (limited to 'src/mongo/db/s/create_collection_coordinator.h')
-rw-r--r--src/mongo/db/s/create_collection_coordinator.h26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/mongo/db/s/create_collection_coordinator.h b/src/mongo/db/s/create_collection_coordinator.h
index aed857f3e67..1224627ee1a 100644
--- a/src/mongo/db/s/create_collection_coordinator.h
+++ b/src/mongo/db/s/create_collection_coordinator.h
@@ -65,6 +65,9 @@ public:
return *_result;
}
+protected:
+ CoordDoc _doc;
+
private:
ShardingDDLCoordinatorMetadata const& metadata() const override {
return _doc.getShardingDDLCoordinatorMetadata();
@@ -146,8 +149,17 @@ private:
*/
void _logEndCreateCollection(OperationContext* opCtx);
- CoordDoc _doc;
- BSONObj _critSecReason;
+ /**
+ * Returns the BSONObj used as critical section reason
+ *
+ * TODO SERVER-64720 remove this function, directly access _critSecReason
+ *
+ */
+ virtual const BSONObj& _getCriticalSectionReason() const {
+ return _critSecReason;
+ };
+
+ const BSONObj _critSecReason;
// Objects generated on each execution.
boost::optional<ShardKeyPattern> _shardKeyPattern;
@@ -176,6 +188,16 @@ class CreateCollectionCoordinatorPre60Compatible final : public CreateCollection
public:
using CreateCollectionCoordinator::CreateCollectionCoordinator;
using CoordDoc = CreateCollectionCoordinatorDocumentPre60Compatible;
+
+ CreateCollectionCoordinatorPre60Compatible(ShardingDDLCoordinatorService* service,
+ const BSONObj& initialState);
+
+ virtual const BSONObj& _getCriticalSectionReason() const override {
+ return _critSecReason;
+ };
+
+private:
+ const BSONObj _critSecReason;
};
} // namespace mongo