diff options
Diffstat (limited to 'src/mongo/db/repl/replication_coordinator_impl.h')
-rw-r--r-- | src/mongo/db/repl/replication_coordinator_impl.h | 111 |
1 files changed, 60 insertions, 51 deletions
diff --git a/src/mongo/db/repl/replication_coordinator_impl.h b/src/mongo/db/repl/replication_coordinator_impl.h index 83c80b73bb7..16223c17e86 100644 --- a/src/mongo/db/repl/replication_coordinator_impl.h +++ b/src/mongo/db/repl/replication_coordinator_impl.h @@ -91,21 +91,21 @@ namespace repl { // ================== Members of public ReplicationCoordinator API =================== - virtual void startReplication(OperationContext* txn); + virtual void startReplication(OperationContext* txn) override; - virtual void shutdown(); + virtual void shutdown() override; - virtual const ReplSettings& getSettings() const; + virtual const ReplSettings& getSettings() const override; - virtual Mode getReplicationMode() const; + virtual Mode getReplicationMode() const override; - virtual MemberState getMemberState() const; + virtual MemberState getMemberState() const override; - virtual bool isInPrimaryOrSecondaryState() const; + virtual bool isInPrimaryOrSecondaryState() const override; - virtual Seconds getSlaveDelaySecs() const; + virtual Seconds getSlaveDelaySecs() const override; - virtual void clearSyncSourceBlacklist(); + virtual void clearSyncSourceBlacklist() override; /* * Implementation of the KillOpListenerInterface interrupt method so that we can wake up @@ -156,107 +156,112 @@ namespace repl { virtual Timestamp getMyLastOptime() const; - virtual OpTime getMyLastOptimeV1() const; + virtual OpTime getMyLastOptimeV1() const override; - virtual OID getElectionId(); + virtual ReadAfterOpTimeResponse waitUntilOpTime( + const OperationContext* txn, + const ReadAfterOpTimeArgs& settings) override; + + virtual OID getElectionId() override; - virtual OID getMyRID() const; + virtual OID getMyRID() const override; - virtual int getMyId() const; + virtual int getMyId() const override; - virtual bool setFollowerMode(const MemberState& newState); + virtual bool setFollowerMode(const MemberState& newState) override; - virtual bool isWaitingForApplierToDrain(); + virtual bool isWaitingForApplierToDrain() override; - virtual void signalDrainComplete(OperationContext* txn); + virtual void signalDrainComplete(OperationContext* txn) override; - virtual void signalUpstreamUpdater(); + virtual void signalUpstreamUpdater() override; - virtual bool prepareReplSetUpdatePositionCommand(BSONObjBuilder* cmdBuilder); + virtual bool prepareReplSetUpdatePositionCommand(BSONObjBuilder* cmdBuilder) override; - virtual Status processReplSetGetStatus(BSONObjBuilder* result); + virtual Status processReplSetGetStatus(BSONObjBuilder* result) override; - virtual void fillIsMasterForReplSet(IsMasterResponse* result); + virtual void fillIsMasterForReplSet(IsMasterResponse* result) override; - virtual void appendSlaveInfoData(BSONObjBuilder* result); + virtual void appendSlaveInfoData(BSONObjBuilder* result) override; - virtual ReplicaSetConfig getConfig() const; + virtual ReplicaSetConfig getConfig() const override; - virtual void processReplSetGetConfig(BSONObjBuilder* result); + virtual void processReplSetGetConfig(BSONObjBuilder* result) override; - virtual Status setMaintenanceMode(bool activate); + virtual Status setMaintenanceMode(bool activate) override; - virtual bool getMaintenanceMode(); + virtual bool getMaintenanceMode() override; virtual Status processReplSetSyncFrom(const HostAndPort& target, - BSONObjBuilder* resultObj); + BSONObjBuilder* resultObj) override; - virtual Status processReplSetFreeze(int secs, BSONObjBuilder* resultObj); + virtual Status processReplSetFreeze(int secs, BSONObjBuilder* resultObj) override; virtual Status processHeartbeat(const ReplSetHeartbeatArgs& args, - ReplSetHeartbeatResponse* response); + ReplSetHeartbeatResponse* response) override; virtual Status processReplSetReconfig(OperationContext* txn, const ReplSetReconfigArgs& args, - BSONObjBuilder* resultObj); + BSONObjBuilder* resultObj) override; virtual Status processReplSetInitiate(OperationContext* txn, const BSONObj& configObj, - BSONObjBuilder* resultObj); + BSONObjBuilder* resultObj) override; - virtual Status processReplSetGetRBID(BSONObjBuilder* resultObj); + virtual Status processReplSetGetRBID(BSONObjBuilder* resultObj) override; - virtual void incrementRollbackID(); + virtual void incrementRollbackID() override; virtual Status processReplSetFresh(const ReplSetFreshArgs& args, - BSONObjBuilder* resultObj); + BSONObjBuilder* resultObj) override; virtual Status processReplSetElect(const ReplSetElectArgs& args, - BSONObjBuilder* response); + BSONObjBuilder* response) override; virtual Status processReplSetUpdatePosition(const UpdatePositionArgs& updates, - long long* configVersion); + long long* configVersion) override; - virtual Status processHandshake(OperationContext* txn, const HandshakeArgs& handshake); + virtual Status processHandshake(OperationContext* txn, + const HandshakeArgs& handshake) override; - virtual bool buildsIndexes(); + virtual bool buildsIndexes() override; - virtual std::vector<HostAndPort> getHostsWrittenTo(const Timestamp& op); + virtual std::vector<HostAndPort> getHostsWrittenTo(const Timestamp& op) override; - virtual std::vector<HostAndPort> getOtherNodesInReplSet() const; + virtual std::vector<HostAndPort> getOtherNodesInReplSet() const override; - virtual WriteConcernOptions getGetLastErrorDefault(); + virtual WriteConcernOptions getGetLastErrorDefault() override; - virtual Status checkReplEnabledForCommand(BSONObjBuilder* result); + virtual Status checkReplEnabledForCommand(BSONObjBuilder* result) override; - virtual bool isReplEnabled() const; + virtual bool isReplEnabled() const override; - virtual HostAndPort chooseNewSyncSource(); + virtual HostAndPort chooseNewSyncSource() override; - virtual void blacklistSyncSource(const HostAndPort& host, Date_t until); + virtual void blacklistSyncSource(const HostAndPort& host, Date_t until) override; - virtual void resetLastOpTimeFromOplog(OperationContext* txn); + virtual void resetLastOpTimeFromOplog(OperationContext* txn) override; - virtual bool shouldChangeSyncSource(const HostAndPort& currentSource); + virtual bool shouldChangeSyncSource(const HostAndPort& currentSource) override; - virtual Timestamp getLastCommittedOpTime() const; + virtual Timestamp getLastCommittedOpTime() const override; virtual Status processReplSetRequestVotes(OperationContext* txn, const ReplSetRequestVotesArgs& args, - ReplSetRequestVotesResponse* response); + ReplSetRequestVotesResponse* response) override; virtual Status processReplSetDeclareElectionWinner( const ReplSetDeclareElectionWinnerArgs& args, - long long* responseTerm); + long long* responseTerm) override; virtual void prepareCursorResponseInfo(BSONObjBuilder* objBuilder); virtual Status processHeartbeatV1(const ReplSetHeartbeatArgsV1& args, - ReplSetHeartbeatResponseV1* response); + ReplSetHeartbeatResponseV1* response) override; - virtual bool isV1ElectionProtocol(); + virtual bool isV1ElectionProtocol() override; - virtual void summarizeAsHtml(ReplSetHtmlSummary* s); + virtual void summarizeAsHtml(ReplSetHtmlSummary* s) override; // ================== Test support API =================== @@ -880,6 +885,10 @@ namespace repl { // WaiterInfos. std::vector<WaiterInfo*> _replicationWaiterList; // (M) + // list of information about clients waiting for a particular opTime. + // Does *not* own the WaiterInfos. + std::vector<WaiterInfo*> _opTimeWaiterList; // (M) + // Set to true when we are in the process of shutting down replication. bool _inShutdown; // (M) |