Project

Profile

Help

Story #1

Updated by bmbouter over 5 years ago

Along with the conversion to mongoengine, we should ensure that it works correctly with an HA setup. The mongoengine connection should be tested with an HA mongodb setup.

1.
setup.1. The tester should remove the auto-retry behavior of Pulp from PulpCollection which should disable auto-retry everywhere.
2.
everywhere.2. Test with a single mongoDB broker and observe Pulp's logging behavior if MongoDB is killed or stopped.
3.
stopped.3. Setup a two-host HA pair of MongoDB servers. Have Pulp connected to one or both, and then kill the one that Pulp is connected to. What is Pulp's behavior for failover? At what point are the Connection erorrs raised to the codebase?
4.
codebase?4. Does the multi-host failover work with any number of MongoDB hosts, or just two?

Based on this information PulpCollection and
two?This accounts for the mongoengine models (which do not use PulpCollection) need to have using PulpCollection [0]. If the correct retry mongodb HA integration works well enough the auto-retry behavior in place so that high availability failover happens. After failover of PulpCollection can no longer continue the connection error should be raised so that the component using the database can decide how to handle it.

[0]: https://github.com/pulp/pulp/blob/master/server/pulp/server/db/connection.py#L187
removed.[0]: https://github.com/pulp/pulp/blob/master/server/pulp/server/db/connection.py#L187

Back