This ticket has turned into a more general refactoring of the parallel cursor code, minimizing the use of getChunkManager(), but also includes the original issue:
getChunkManager()'s failure mode is to throw masserts, which is incorrect as changes in sharding are not generally exception cases - this leads to very ugly logs and confusing codepaths. Also, there are various configurable levels of reloading for getChunkManager(), these should be clearer and encapsulated.
- depends on
-
SERVER-4711 Don't use masserts when getChunkManager() fails to find a current chunk manager.
- Closed
- is depended on by
-
SERVER-4398 ClusteredCursor reported total time is just sum of individual times
- Closed
- is related to
-
SERVER-4215 multiple connections to shards can rarely get mutually inconsistent versions when migrate occurs
- Closed
-
SERVER-1546 Moving a chunk to a server that gets queried later in serial mode may return duplicate results
- Closed
-
SERVER-4177 make multi-shard retrying due to stale versions smarter
- Closed
- related to
-
SERVER-4605 explain() needs to better handle versioning
- Closed