|
The mongos due to errors, including network errors beyond our control, can have a wrong world view where databases that do exist are reported not to. When the database is accessed the mongos treats it like a new database. This leads to the mongos then upserting into the config.databases collection the wrong information: that the database named is non-sharded. This causes significant errors with mongodb systems.
If the mongos uses an insert against the config database which fails when a database with that name already exists, the mongos will properly get an error when it’s world view is incorrect, and will not corrupt the config server’s database. At this point the mongos should also reload it’s data so that it has a correct world view.
This change would isolate the error to the mongos instead of propagating it's error state to the entire system.
|