[CSHARP-519] Support load balancing and failover between multiple mongos routers Created: 05/Jul/12  Updated: 20/Mar/14  Resolved: 20/Jul/12

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

Type: New Feature Priority: Major - P3
Reporter: Robert Stam Assignee: Craig Wilson
Resolution: Done Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to CSHARP-500 If host names in replica set connecti... Closed

 Description   

Support load balancing and failover between multiple mongos routers. In this release the set of available mongos routers is determined by the connection string. The driver will measure ping time to the available mongos routers and will randomly distribute queries across the mongos routers that have "fast" ping times.



 Comments   
Comment by auto [ 17/Aug/12 ]

Author:

{u'date': u'2012-08-17T11:37:36-07:00', u'name': u'Craig Wilson', u'email': u'craiggwilson@gmail.com'}

Message: CSHARP-519: fixed threading related bugs caused by a refactor and optimized many of the classes to use lock-less algorithms as they do not require ordering guarantees, only thread safety.
Branch: master
https://github.com/mongodb/mongo-csharp-driver/commit/58df048b95ca7f10dc1c37669ec05229770f3809

Comment by auto [ 18/Jul/12 ]

Author:

{u'date': u'2012-07-18T13:39:03-07:00', u'email': u'craiggwilson@gmail.com', u'name': u'Craig Wilson'}

Message: CSHARP-519: fixing minor code issues.
Branch: master
https://github.com/mongodb/mongo-csharp-driver/commit/cc6218c5fe6739acd960d100ebfdfc083219c27d

Comment by auto [ 18/Jul/12 ]

Author:

{u'date': u'2012-07-18T09:07:55-07:00', u'email': u'craiggwilson@gmail.com', u'name': u'Craig Wilson'}

Message: CSHARP-519: removed lock in ChooseServerInstance as it was unnecessary and prevented secondary read operations from proceeding.
Branch: master
https://github.com/mongodb/mongo-csharp-driver/commit/b4a22e58a808897b5b8e1eadd4a7ae59ae618ada

Comment by auto [ 18/Jul/12 ]

Author:

{u'date': u'2012-07-18T06:58:12-07:00', u'email': u'craiggwilson@gmail.com', u'name': u'Craig Wilson'}

Message: CSHARP-519: removed read lock from DiscoveringMongoServerProxy as it was a performance problem in high contention systems. Instead, make the state variables volatile. This isn't necessary for > .NET 2.0, but mono does not have the same memory model guarantees, so we have coded to the ECMA standard.
Branch: master
https://github.com/mongodb/mongo-csharp-driver/commit/3616cdd7e724f411a13689bacd201ee47391e389

Comment by auto [ 18/Jul/12 ]

Author:

{u'date': u'2012-07-18T06:13:03-07:00', u'email': u'craiggwilson@gmail.com', u'name': u'Craig Wilson'}

Message: CSHARP-519: fixed an issue where the initial instance state wasn't accounted for causing the driver to hang in a connecting state.
Branch: master
https://github.com/mongodb/mongo-csharp-driver/commit/b4c897e88bbabad81eb8ee7ec247716bf66055c7

Comment by auto [ 12/Jul/12 ]

Author:

{u'date': u'2012-07-12T08:40:54-07:00', u'email': u'craiggwilson@gmail.com', u'name': u'Craig Wilson'}

Message: CSHARP-500, CSHARP-519: refactored ReplicaSetMongoServerProxy and ShardedMongoServerProxy to use a common base class.
Branch: master
https://github.com/mongodb/mongo-csharp-driver/commit/07f73d4f9f579fe4a49930335a82b5290f0092df

Comment by auto [ 12/Jul/12 ]

Author:

{u'date': u'2012-07-11T13:43:01-07:00', u'email': u'craiggwilson@gmail.com', u'name': u'Craig Wilson'}

Message: CSHARP-500:refactored connection logic. CSHARP-519: implemented mongos failover and load balancing.
Branch: master
https://github.com/mongodb/mongo-csharp-driver/commit/35432a8dc173348a1f7904644cf1f2f6ec706851

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