Add praefect database to Omnibus
Problem to solve
The current Praefect docs presume a database is configured somewhere. This requires self-hosted customers to use a cloud hosted database, or run their own database server. If they are using Omnibus for this, this is a nuisance.
Further details
Consistency is an objective of Gitaly HA, but something we avoided in the first iteration because it seems hard to implement comprehensively. But, we need to start developing a strategy and better understand the complexity of implementing strong consistency.
In theory, if we have okay eventual consistency, we can start optimizing the most common mutators to use transactions. For operations that have been implemented with transaction support, we don't need to trigger replication for those RPCs. This might provide a nice pathway to move from eventual consistency, to strong consistency.
Proposal
It should be possible for a customer to:
- provision a new server
- install
gitlab-ee
- reconfigure to run the Praefect database
We should add checks that prevent the Praefect database being run on the same server as the application database.