diff options
Diffstat (limited to 'src/mongo/db/repl/replication_coordinator.h')
-rw-r--r-- | src/mongo/db/repl/replication_coordinator.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/mongo/db/repl/replication_coordinator.h b/src/mongo/db/repl/replication_coordinator.h index 229ee7e5df3..9c310e41025 100644 --- a/src/mongo/db/repl/replication_coordinator.h +++ b/src/mongo/db/repl/replication_coordinator.h @@ -46,6 +46,7 @@ namespace mongo { class BSONObj; class BSONObjBuilder; +class CommitQuorumOptions; class IndexDescriptor; class NamespaceString; class OperationContext; @@ -251,6 +252,26 @@ public: const WriteConcernOptions& writeConcern) const = 0; /** + * Checks if the 'commitQuorum' can be satisfied by all the members in the replica set; if it + * cannot be satisfied, then the 'UnsatisfiableCommitQuorum' error code is returned. + * + * Returns the 'NoReplicationEnabled' error code if this is called without replication enabled. + */ + virtual Status checkIfCommitQuorumCanBeSatisfied( + const CommitQuorumOptions& commitQuorum) const = 0; + + /** + * Checks if the 'commitQuorum' has been satisfied by the 'commitReadyMembers', if it has been + * satisfied, return true. + * + * Prior to checking if the 'commitQuorum' is satisfied by 'commitReadyMembers', it calls + * 'checkIfCommitQuorumCanBeSatisfied()' with all the replica set members. + */ + virtual StatusWith<bool> checkIfCommitQuorumIsSatisfied( + const CommitQuorumOptions& commitQuorum, + const std::vector<HostAndPort>& commitReadyMembers) const = 0; + + /** * Returns Status::OK() if it is valid for this node to serve reads on the given collection * and an errorcode indicating why the node cannot if it cannot. */ |