Frequently asked questions (FREE SELF)
The following are answers to frequently asked questions about Gitaly and Gitaly Cluster. For troubleshooting information, see Troubleshooting Gitaly and Gitaly Cluster.
How does Gitaly Cluster compare to Geo?
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:
- Geo use cases.
- Geo architecture.
Are there instructions for migrating to Gitaly Cluster?
Yes! For more information, see Migrating to Gitaly Cluster.
What are some repository storage recommendations?
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:
- Of
1
: NFS, Gitaly, and Gitaly Cluster have roughly the same storage requirements. - More than
1
: The amount of required storage isused space * replication factor
.used space
should include any planned future growth.
What are some Praefect database storage requirements?
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.
Can the GitLab application database and the Praefect database be on the same servers?
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:
Is PgBouncer required for the Praefect database?
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.
Are there any special considerations for Gitaly Cluster when PostgreSQL is upgraded?
There are no special requirements. Gitaly Cluster requires PostgreSQL version 11 or later.
Praefect database tables are empty?
These tables are created per the specific configuration section.
If you find you have an empty Praefect database table, see the relevant troubleshooting section.