[DRIVERS-2610] Note that load-balanced topologies are backed by sharded clusters with replica sets Created: 20/Apr/23  Updated: 28/Oct/23  Resolved: 12/May/23

Status: Closed
Project: Drivers
Component/s: Unified Test Runner
Fix Version/s: None

Type: Task Priority: Minor - P4
Reporter: Jeremy Mikola Assignee: Jeremy Mikola
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to DRIVERS-2609 Deprecate sharded-replicaset topology... Implementing
Driver Changes: Not Needed
Engineering Lead: Andreas Braun Andreas Braun

 Description   

Summary

Quoting Shard Replica Sets from the MongoDB 3.6 release notes:

Starting in MongoDB 3.6, mongod instances with the shard server role must be replica set members.

Load balancers are used with MongoDB 5.0+. Thus, drivers can assume that any load balancer is backed by a sharded cluster with replica sets and features such as change streams and transactions will be supported. It would be helpful to remind readers of this when introducing the "load-balanced" topology in the Unified Test Format spec.

This will not require any driver changes.

This issue came out of a Slack thread in #dbx-devs.

Motivation

Who is the affected end user?

Driver developers.

How does this affect the end user?

The documentation for load-balanced topologies can be improved to remind developers that all LB topologies are backed by sharded clusters with replica sets.

Is this issue urgent?

No.

Is this ticket required by a downstream team?

No.

Is this ticket only for tests?

Yes.



 Comments   
Comment by Githook User [ 12/May/23 ]

Author:

{'name': 'Jeremy Mikola', 'email': 'jmikola@gmail.com', 'username': 'jmikola'}

Message: DRIVERS-2609: Deprecate sharded-replicaset topology type and clean up redundant runOnRequirements (#1408)

  • DRIVERS-2609: Deprecate "sharded-replicaset" topology type in runOnRequirements

MongoDB 3.6+ requires all shards to be replica sets, so there is no reason use "sharded-replicaset" instead of "sharded".

The "sharded-replicaset" topology type dates back to the first version of the Unified Test Format, but it's not clear it was ever truly necessary. It appears to have only been used in conjunction with 3.6+ minServerVersion requirements.

  • Remove redundant usage of "sharded-replicaset" in runOnRequirements
  • Remove redundant runOnRequirements in CSOT tests

A replica set will already be matched by the first runOnRequirement.

  • Update link to config.shards docs page in Unified Test Format spec
Comment by Jeremy Mikola [ 21/Apr/23 ]

I'm including this in the PR for DRIVERS-2609 since it touches the same text:

https://github.com/mongodb/specifications/pull/1408

Comment by Jeremy Mikola [ 21/Apr/23 ]

james.kovacs@mongodb.com: Thanks for clarifying.

With that in mind, I think the only improvement here would be noting that rationale in the Unified Test Spec. No need to revise the Load Balancer test README.

Also, it sounds like the "sharded-replicaset" topology may be irrelevant for any tests that require MongoDB 3.6. I'll sort that out in DRIVERS-2609, though.

Comment by James Kovacs [ 20/Apr/23 ]

Starting in MongoDB 3.6, sharded clusters must use replica sets for the shards. It is no longer possible - even for testing - for the shards to be standalones. Thus if the topology is load-balanced then you must be talking to one or more mongos nodes behind it and those mongos nodes must be talking to shard replica sets.

Generated at Thu Feb 08 08:26:00 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.