[CSHARP-676] Stop heartbeating against arbiters Created: 06/Feb/13  Updated: 28/Oct/13  Resolved: 28/Oct/13

Status: Closed
Project: C# Driver
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: David Hows Assignee: Unassigned
Resolution: Done Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related

 Description   

Currently the regular heartbeat will run against an arbiter.

This behaviour doesn't seem to be needed as a client should never need to know the state of an arbiter.



 Comments   
Comment by Craig Wilson [ 28/Oct/13 ]

So, you are correct that there isn't ever a need to know the state of an arbiter. However, heartbeats are used for more than just getting the state of a server. They are also used for discovering newly added or recently removed members of a replica set. Yes, this can also be discovered from the other members of a replica set, but there is always the chance that the arbiter is the only server alive that is capable of telling us about a new server. As such, it is imperative that heartbeats to an arbiter continue.

In addition, there is a bit of a chicken and egg problem. Depending on how we discovered the arbiter (connection string vs. another member's heartbeat), we may not know it's an arbiter before attempting to talk to it.

All that to say, we are going to mark this ticket as Works as Designed and an arbiter, while not bearing any data, should be considered equal to that of a data-bearing replica set member.

Generated at Wed Feb 07 21:37:31 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.