- How does Gitaly Cluster compare to Geo?
- Are there instructions for migrating to Gitaly Cluster?
- What are some repository storage recommendations?
- What are some Praefect database storage requirements?
- Can the GitLab application database and the Praefect database be on the same servers?
- Is PgBouncer required for the Praefect database?
- Are there any special considerations for Gitaly Cluster when PostgreSQL is upgraded?
- Praefect database tables are empty?
The following are answers to frequently asked questions about Gitaly and Gitaly Cluster. For troubleshooting information, see Troubleshooting Gitaly and Gitaly Cluster.
Gitaly Cluster and Geo both provide redundancy. However the redundancy of:
- Gitaly Cluster provides fault tolerance for data storage and is invisible to the user. Users are not aware when Gitaly Cluster is used.
- Geo provides replication and disaster recovery for an entire instance of GitLab. Users know when they are using Geo for replication. Geo replicates multiple data types, including Git data.
The following table outlines the major differences between Gitaly Cluster and Geo:
|Tool||Nodes||Locations||Latency tolerance||Failover||Consistency||Provides redundancy for|
|Gitaly Cluster||Multiple||Single||Less than 1 second, ideally single-digit milliseconds||Automatic||Strong||Data storage in Git|
|Geo||Multiple||Multiple||Up to one minute||Manual||Eventual||Entire GitLab instance|
For more information, see:
Yes! For more information, see Migrating to Gitaly Cluster.
The size of the required storage can vary between instances and depends on the set replication factor. You might want to include implementing repository storage redundancy.
For a replication factor:
1: NFS, Gitaly, and Gitaly Cluster have roughly the same storage requirements.
- More than
1: The amount of required storage is
used space * replication factor.
used spaceshould include any planned future growth.
The requirements are relatively low because the database contains only metadata of:
- Where repositories are located.
- Some queued work.
It depends on the number of repositories, but a useful minimum is 5-10 GB, similar to the main GitLab application database.
Yes, however Praefect should have it’s own database server when using Omnibus GitLab PostgreSQL. If there is a failover, Praefect isn’t aware and starts to fail as the database it’s trying to use would either:
- Be unavailable.
- In read-only mode.
A future solution may allow for Praefect and Omnibus GitLab databases on the same PostgreSQL server. For more information, see the relevant:
No, because the number of connections Praefect makes is low. You can use the same PgBouncer instance for both the GitLab application database and the Praefect database if you wish.
There are no special requirements. Gitaly Cluster requires PostgreSQL version 11 or later.
These tables are created per the specific configuration section.
If you find you have an empty Praefect database table, see the relevant troubleshooting section.