voyage
voyage copied to clipboard
Review error scenario of full network outage (no replica can be reached)
It seems several aspects need to be reviewed and understood better. This might be obsolete by implementing Mongo's SDAM specification.
-
VOMongoRepository class >> #defaultReplicaSetLookupTimeout vs. Socket standardTimeout: When trying to find a new primary maybe only a single one will be tried in VOMongoReplicationUrlResolver>>#lookupReplicaSetStatusIfFound: because of a big socket timeout (Mongo>>#open uses default socket time out of 45s). Maybe it makes sense to access knownMongoUrls atRandom to avoid always getting stuck on the first entry!
-
Do not (attempt to) populate session pool when there is no primary: If >>#basicReset fails primaryMongoUrl should not be assigned the first URL but no server.
-
Do not execute VOMongoReplicationUrlResolver>>#reset concurrently. Each VOExecutionStrategy will call >>#reset on failure and the last one will win. They should be serialized. The effect seems that after a change in primary it takes some time for voyage to "warm" up again to get the same transaction speed. This shouldn't be the case though.