10gen / mongo-orchestration

Apache License 2.0
7 stars 11 forks source link

Set up mixed-version RSes and sharded clusters #106

Closed ajdavis closed 9 years ago

ajdavis commented 10 years ago

May come in handy for driver testing if the mongo-orchestration API allowed us to specify mixed-version RSes and clusters, and to selectively upgrade / downgrade servers during integration tests.

Justification: The drivers should all have tests that verify we correctly calculate min and max wire version, max message size, and so on when talking to a mixed RS. This is true for a steady-state RS, and we have to update our view of the topology's max wire version and max message size after the primary fails over to an upgraded or downgraded member.

Drivers should have similar tests when they're doing mongos high availability, or mongos load-balancing: can I deal with a set of mongoses with different wire versions and max message sizes?

There might also be edge cases when mongos fans out an operation among shard primaries of different versions: if their error messages are different, and mongos combines them, can drivers correctly parse the combined error? I don't have a concrete example here, but I think a mixed-version test might flush out some client-server incompatibilities.

Most of these tests can be mocked, but it seems there should be a couple of tests with live replica sets.

llvtt commented 9 years ago

This was completed in 1048a27c61ccdf5bcb85300da0fe2569f76dd76a.