[SERVER-14561] Implement Heartbeat callback and scheduling Created: 15/Jul/14  Updated: 25/Oct/14  Resolved: 06/Oct/14

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: 2.7.8

Type: Task Priority: Major - P3
Reporter: Scott Hernandez (Inactive) Assignee: Andy Schwerin
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-14939 Calculate replication election qualif... Closed
depends on SERVER-14940 Put close connections in ReplicationC... Closed
Duplicate
is duplicated by SERVER-11034 Provide better message on wassert(d.s... Closed
Related
related to SERVER-14517 Add doMemberHeartbeat Closed
Backwards Compatibility: Fully Compatible
Participants:

 Comments   
Comment by Githook User [ 06/Oct/14 ]

Author:

{u'username': u'stbrody', u'name': u'Spencer T Brody', u'email': u'spencer@mongodb.com'}

Message: SERVER-14561 Fix compile
Branch: master
https://github.com/mongodb/mongo/commit/68c3943b92a121441f59bc093d26a08b48658acc

Comment by Githook User [ 06/Oct/14 ]

Author:

{u'username': u'andy10gen', u'name': u'Andy Schwerin', u'email': u'schwerin@mongodb.com'}

Message: SERVER-14561 Set heartbeat "from" field and "version" fields like v2.6 when the node has no config.
Branch: master
https://github.com/mongodb/mongo/commit/01541f27ca75a12899a7d5123678ba59214fb24e

Comment by Githook User [ 06/Oct/14 ]

Author:

{u'username': u'andy10gen', u'name': u'Andy Schwerin', u'email': u'schwerin@mongodb.com'}

Message: SERVER-14561 Heartbeat callback and scheduling.

With this change, the ReplicationCoordinatorImpl should have full heartbeat support, including
primary step-down, standing for election, and heartbeat reconfig. Unit test coverage is light,
but present. Every test that needs to set member state to primary or fall back to secondary
exercises the code, along with a unit test of the joining-a-new-node-to-a-replica-set behavior.
Branch: master
https://github.com/mongodb/mongo/commit/5f0918f1e83eb48f5855df806f7b911029a6aa5c

Comment by Githook User [ 06/Oct/14 ]

Author:

{u'username': u'andy10gen', u'name': u'Andy Schwerin', u'email': u'schwerin@mongodb.com'}

Message: SERVER-14561 Change topology coordinator heartbeat processor to return a status, not be a callback.

Heartbeat scheduling requires the replication coordinator to take action during a heartbeat processing
callback, so we cannot schedule the heartbeat processor directly on the topology coordinator. Instead,
schedule it in a callback in the replication coordinator, and make a regular function call into the
topology coordinator. This is the preferred interface to the topology coordinator, in general.
Branch: master
https://github.com/mongodb/mongo/commit/8403d2fc99e3d050466b1f188fba87392ccaa063

Comment by Githook User [ 18/Sep/14 ]

Author:

{u'username': u'andy10gen', u'name': u'Andy Schwerin', u'email': u'schwerin@mongodb.com'}

Message: SERVER-14561 Provide a way to get an OperationContext on ReplicationCoordinatorExternalState.

Also, make sure to call Client::initThread as needed in
ReplicationCoordinatorExternalStateImpl and NetworkInterfaceImpl.
Branch: master
https://github.com/mongodb/mongo/commit/f679b4e9b73ab0a6baf9ab9504f66b06863243f1

Comment by Githook User [ 02/Sep/14 ]

Author:

{u'username': u'andy10gen', u'name': u'Andy Schwerin', u'email': u'schwerin@mongodb.com'}

Message: SERVER-14561 Implement heartbeat scheduling and reconfig logic in TopologyCoordinator.
Branch: master
https://github.com/mongodb/mongo/commit/d17d9ed8cddedca193504729d6c7729a0bfa27bc

Comment by Githook User [ 28/Aug/14 ]

Author:

{u'username': u'andy10gen', u'name': u'Andy Schwerin', u'email': u'schwerin@mongodb.com'}

Message: SERVER-14561 Do not register ReplicationCoordinator for callbacks from TopologyCoordinator.

The TopologyCoordinator callbacks for state and configuration change are deprecated and
will be removed in a future commit.
Branch: master
https://github.com/mongodb/mongo/commit/60d77fd541a1748f16ced5b790fa979633c325df

Comment by Githook User [ 28/Aug/14 ]

Author:

{u'username': u'andy10gen', u'name': u'Andy Schwerin', u'email': u'schwerin@mongodb.com'}

Message: SERVER-14561 Add includes missed in merge.
Branch: master
https://github.com/mongodb/mongo/commit/68f84244953ed2ade6a00d61baf3f70d51f0d890

Comment by Githook User [ 28/Aug/14 ]

Author:

{u'username': u'andy10gen', u'name': u'Andy Schwerin', u'email': u'schwerin@mongodb.com'}

Message: SERVER-14561 Move ReplCoordTest fixture declaration into a header.

This lowers the barrier of entry for writing replication coordinator tests in
several files.
Branch: master
https://github.com/mongodb/mongo/commit/4ae7190ecc4a24f271e6be134c951335500b4f6f

Comment by Githook User [ 28/Aug/14 ]

Author:

{u'username': u'andy10gen', u'name': u'Andy Schwerin', u'email': u'schwerin@mongodb.com'}

Message: SERVER-14561 Parsing and accessor methods for ReplSetHeartbeatResponse.
Branch: master
https://github.com/mongodb/mongo/commit/86be883456bddff9ce3c283c9d740e70d62eb22f

Comment by Githook User [ 28/Aug/14 ]

Author:

{u'username': u'andy10gen', u'name': u'Andy Schwerin', u'email': u'schwerin@mongodb.com'}

Message: SERVER-14561 Add OperationContext* member to ReplicationExecutor::CallbackData.

This member, called txn, is non-NULL if the operation was scheduled using
scheduleWorkWithGlobalExclusiveLock, and provides a pointer to the lock-owning
context.
Branch: master
https://github.com/mongodb/mongo/commit/3e5da05ed36c38eb9b13b5d6c81bb390273abf25

Comment by Githook User [ 28/Aug/14 ]

Author:

{u'username': u'andy10gen', u'name': u'Andy Schwerin', u'email': u'schwerin@mongodb.com'}

Message: SERVER-14561 Remove ReplicationExecutor::CallbackData argument from methods that aren't callbacks.

TopologyCoordinator::updateConfig and ReplicationCoordinatorImpl::_setCurrentRSConfig_inlock are
not scheduled direclty as callbacks, and so do not need a cbData argument.
Branch: master
https://github.com/mongodb/mongo/commit/ab5de8df2d7a9aa220fc138ce8fa16fbc519af7e

Comment by Githook User [ 28/Aug/14 ]

Author:

{u'username': u'andy10gen', u'name': u'Andy Schwerin', u'email': u'schwerin@mongodb.com'}

Message: SERVER-14561 Add validateConfigForHeartbeatReconfig free function.

This function is analagous to validateConfigForInitiate and others in the same file,
and provides the validation required for heartbeat-prompted reconfigurations.
Branch: master
https://github.com/mongodb/mongo/commit/1760e651f2c4ed5b26e37a54de8b0d42f6cf8616

Comment by Githook User [ 27/Aug/14 ]

Author:

{u'username': u'andy10gen', u'name': u'Andy Schwerin', u'email': u'schwerin@mongodb.com'}

Message: SERVER-14561 Make getStatusFromCommandResult a free function supplied by mongo/db/common.

It was formerly a static member function on the Command class, which made it hard to link
into unit-testable code.
Branch: master
https://github.com/mongodb/mongo/commit/312aa1b308c775e3bafec3ac1570f5c195956dbd

Comment by Githook User [ 25/Aug/14 ]

Author:

{u'username': u'scotthernandez', u'name': u'Scott Hernandez', u'email': u'scotthernandez@gmail.com'}

Message: SERVER-14561: Topology updateHeartbeat
Branch: master
https://github.com/mongodb/mongo/commit/d720d0f759aa3183e5f5677abfbd009e578d31b8

Comment by Githook User [ 21/Aug/14 ]

Author:

{u'username': u'scotthernandez', u'name': u'Scott Hernandez', u'email': u'scotthernandez@gmail.com'}

Message: SERVER-14561: record execution time for remote commands
Branch: master
https://github.com/mongodb/mongo/commit/540fabf4d093044f1df23b21740059e2b6e00bb6

Comment by Githook User [ 21/Aug/14 ]

Author:

{u'username': u'scotthernandez', u'name': u'Scott Hernandez', u'email': u'scotthernandez@gmail.com'}

Message: SERVER-14561: Allow dynamic responses from NetworkInterfaceMock
Branch: master
https://github.com/mongodb/mongo/commit/660e7a020ed7d497efbc6d8ef81089efdc4fce09

Comment by Githook User [ 07/Aug/14 ]

Author:

{u'username': u'scotthernandez', u'name': u'Scott Hernandez', u'email': u'scotthernandez@gmail.com'}

Message: SERVER-14561: rename replCoord topoCoord callbacks and make private
Branch: master
https://github.com/mongodb/mongo/commit/e931498da5d7b96babf2a72df413a5b8666cb228

Comment by Githook User [ 07/Aug/14 ]

Author:

{u'username': u'scotthernandez', u'name': u'Scott Hernandez', u'email': u'scotthernandez@gmail.com'}

Message: SERVER-14561: remove member heartbeat ping data
Branch: master
https://github.com/mongodb/mongo/commit/8e986f6e55be93a3ba8b3ceee7fc7519b2ed5334

Comment by Githook User [ 01/Aug/14 ]

Author:

{u'username': u'scotthernandez', u'name': u'Scott Hernandez', u'email': u'scotthernandez@gmail.com'}

Message: SERVER-14561: track pings in topology coordinator for heartbeats
Branch: master
https://github.com/mongodb/mongo/commit/a654322bd0e7a6d5336a44a09637da8b78b53f49

Comment by Githook User [ 01/Aug/14 ]

Author:

{u'username': u'scotthernandez', u'name': u'Scott Hernandez', u'email': u'scotthernandez@gmail.com'}

Message: SERVER-14561: fix loading of config for heartbeat testing
Branch: master
https://github.com/mongodb/mongo/commit/6ea1e0b3b1bd20205e16877c43d75a0767de5f21

Comment by Githook User [ 31/Jul/14 ]

Author:

{u'username': u'scotthernandez', u'name': u'Scott Hernandez', u'email': u'scotthernandez@gmail.com'}

Message: SERVER-14561: allow setting member heartbeat data from heartbeat responses
Branch: master
https://github.com/mongodb/mongo/commit/7e6b8c83f87bfb8306b3ab3fe15dd3fa451fc1e9

Generated at Thu Feb 08 03:35:15 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.