Gitaly Group Roadmap
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
The following page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features or functionality remain at the sole discretion of GitLab Inc.
FY25Q1 (next quarter) - 80%
Bundle URI MVC
We are close to being able to roll out a very minimal bundle URI implementation and hope to make this GA during FY25Q1. This will allow the server to skip the expensive step of packing up all objects into a packfile to send to the client, and is designed to reduce server load significantly for cases where large repositories are cloned often.
This has some direct benefits for customers with monorepos, as this should allow for less server load during normal operation.
Server side backups support incremental backups
While Server Side backups provide numerous performance improvements for our customers (see the blueprint), we wish to release incremental backups as a quality of life improvement for our customers. Overall, the server side backup mechanism will eliminate complicated backups scripts and provide a much more intuitive option moving forward.
Write ahead logging default enable
Write ahead logging is a critical business goal, and the basis for improved RPO for GitLab.com's disaster recovery planning (See the internal Disaster Recovery page for additional information). This is also the building block for implementing a Raft-based decentralized architecture for HA Gitaly.
FY25Q2 (2 quarters out) - 65%
Bundle URI quality of Life Improvements
While core functionality for Bundle URI is currently planned to complete in FY25Q1, there are numerous quality of life improvements that we have, and will continue to identify, to make this feature even more impactful for our customers. Some examples include:
- Put bundle-URI bundles behind signed URLs (gitaly#5603 - closed)
- Send bundle uri through bundle-uri keyword in p... (gitaly#4536 - closed)
- Make bundle-uri compatible with shallow clones (git#170)
Cloud native Gitaly gap analysis
We are well aware that our customers wish to have a fully cloud native GitLab architecture. There are presently known issues with Gitaly running fully cloud native, and we know that there are a non-trivial number of unknown blockers. With this in mind, we aim to collaborate with groupdistribution throughout this quarter to clearly identify and classify issues with Gitaly running within Kubernetes.
FY25Q3 (3 quarters out) - 50%
Roll out Raft in place of Gitaly Cluster
With the completion of the write-ahead logging effort from FY25Q1, we aim to have a functional HA solution utilizing Raft. While we may not be in a position to transition customers completely off of Gitaly Cluster, we aim to have the groundwork laid and a functional MVC built. This relies heavily on how well the write-ahead logging rollout goes, as any issues found there will translate into delays here.
FY25Q4 (4 quarters out) - 35%
Upstream reftable backend to Git
RefTables are a new storage structure within Git that stores refs in a portable binary format instead of loose files or packed-refs files. This will improve Git in two main ways:
- Performance - updating
refsin areftablewill be more performant than updating loose refs or packed-refs files - Remove race conditions - the current Git implementation causes race-conditions around deletion or modifications to refs that must be avoided.
The ~"group::gitaly::git" team is actively working with the upstream Git mailing list to contribute this feature. It will be an ongoing effort, but one which will help out GitLab as well as the broader Git community and we feel honoured to be able to work on this improvement.
Gitaly / Distribution support cloud-native execution
With the learnings from FY25Q2, we aim to have a fully cloud-native option for Gitaly available. This may not support advanced Gitaly features such as HA, but with collaboration from groupdistribution, we believe we can achieve some level of success for Gitaly running with Kubernetes.