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:

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:

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 is used 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.