Next Gen Git
Project switch aims to scale git access 100x for the agentic era
## Hours Worked
| Epic | Category | DRI | Total Hours |
|------|----------|-----|-------------|
| [Git Backend Stage 1 — MVCC-Reftable migration](https://gitlab.com/groups/gitlab-org/-/epics/22226) | | @eric.p.ju @oli.campeau | 0.0 |
| [Benchmark object storage backed Gitaly](https://gitlab.com/groups/gitlab-org/-/epics/21928) | | @echui-gitlab | 8.0 <!-- discussion:18dd6dbd6801ec08c4bd0a97df1cff196945d0c0 --> |
| [Pluggable object databases in Git](https://gitlab.com/groups/gitlab-org/-/epics/15061) | | @pks-gitlab | 30.0 <!-- discussion:6654f0282689696ebb445603a7974f6421e53915 --> |
## Project Work
### :hourglass: Work In Progress
These epics are currently in progress
| **Topic** | **Start Date** | **Target End Date** | **Summary** |
|-----------|----------------|---------------------|-------------|
| [Git Backend Stage 1 — MVCC-Reftable migration](https://gitlab.com/groups/gitlab-org/-/epics/22226) <br/> @eric.p.ju @oli.campeau (+0 participants) <br/> ~"group::gitaly" | 2026-04-21 | 2026-07-10 | **2026-06-18**: <br>**High Level Summary**<br><br>:clock1: Eric is out on PTO and I don't know how much time he put into this as of yet. For me, I would say 8-10 hours, including the time it took to grasp how everything works together on the POC branch so I can have a good understanding of the whole flow.<br><br>:gear: About issue https://gitlab.com/gitlab-org/gitaly/-/work_items/7231: @eric.p.ju opened [an MR](https://gitlab.com/gitlab-org/gitaly/-/merge_requests/8905) to include the Git MVCC binary in Gitaly, so that when a repository is using MVCC backend, the MVCC binary can be selected to run the git commands. The MR is in review, and I have picked up the MR since Eric is on PTO.<br><br>:gear: About issue https://gitlab.com/gitlab-org/gitaly/-/work_items/7240: I am working on it, but I've had some questions/interrogation with the flow of a request in Gitaly. I am writing a small document which I will share soon so that we can discuss and validate the flow of a request. This document will be very specific to which structs/interfaces holds which responsibility within Gitaly. It has nothing to do with how MVCC works.<br><br>_Copied from https://gitlab.com/groups/gitlab-org/-/epics/22226#note_3467365569_<br><!-- STATUS NOTE END --><br> |
| [Benchmark object storage backed Gitaly](https://gitlab.com/groups/gitlab-org/-/epics/21928) <br/> @echui-gitlab (+0 participants) <br/> | 2026-06-13 | 2026-07-10 | **2026-06-18**: <br><!--Create a high level summary (optional but encouraged)--><br><br>:clock1: **total hours spent this week by all contributors**: 8 hrs<br><br>:tada: **achievements**:<br><br>- [**Setup infrastructure required to target elastic cluster**](https://gitlab.com/gitlab-org/gitaly/-/work_items/7265)** -** This sets up the foundation required to execute tests against the kubernetes cluster with all the git-scaling features. It also does basic profiling of the gitaly pod at the moment and deposits all results to a bucket.<br><br>:issue-blocked: **blockers**:<br><br>- n/a<br><br>:arrow_forward: **next**:<br><br>- Write a new script to test [**Benchmark ref updates against object-storage-backed Gitaly**](https://gitlab.com/gitlab-org/gitaly/-/work_items/7181)<br>- [**Display benchmark results visually**](https://gitlab.com/gitlab-org/gitaly/-/work_items/7266)** -** would be evaluating whether we can get the metrics to show up as part of the MR pipeline.<br><br>_Copied from https://gitlab.com/groups/gitlab-org/-/epics/21928#note_3467365639_<br><!-- STATUS NOTE END --><br> |
| [Pluggable object databases in Git](https://gitlab.com/groups/gitlab-org/-/epics/15061) <br/> @pks-gitlab (+0 participants) <br/> ~"group::git" | 2024-10-08 | 2026-09-28 | **2026-06-18**: <br>:clock1: **total hours spent this week by all contributors**: 30<br><br>:tada: **achievements**:<br>- The "loose" backend has been merged upstream. This is the third backend we have upstreamed by now. The "packed" backend is the last one that we'll have to upstream before we can start abstracting more functionality.<br>- Refactorings for "setup.c" have been merged upstream to centralize creation of the object database. This is a prerequisite for introducing the object storage format extension.<br><br>:issue-blocked: **blockers**:<br>- Git is in feature freeze now due to the pending Git 2.55 release, so it's expected that upstream progress will be slowed down.<br><br>:arrow_forward: **next**:<br>- The "packed" backend is currently under review upstream. Once that patch series got merged we have turned all existing sources into proper pluggable backends, which will then allow us to abstract more functionality. This work will then also be a lot easier to parallelize.<br><br>_Copied from https://gitlab.com/groups/gitlab-org/-/epics/15061#note_3467365753_<br><!-- STATUS NOTE END --><br><br/><br/>**Nested Epics: 8**<br/><br/>• https://gitlab.com/groups/gitlab-org/-/epics/22300+ <br/>• https://gitlab.com/groups/gitlab-org/-/epics/21206+ **2026-06-11**: The scaling Git POC has several ODB transaction related patches that need to be refactored and upstreamed. This includes patches to add transaction support for git-receive-pack(1) and git-fetch-pack(1). :clock1: **total hours spent this week by all contributors**: 8 :arrow_forward: **next**: - Finishing up refactoring for patch series to introduce ODB transactions to git-receive-pack(1) and should be sending it upstream soon. _Copied from https://gitlab.com/groups/gitlab-org/-/epics/21206#note_3444045402_ <!-- STATUS NOTE END --><br/>• https://gitlab.com/groups/gitlab-org/-/epics/20440+ **2026-06-04**: :clock1: **total hours spent this week by all contributors**: 20 :tada: **achievements**: - The patch series that converts the "loose" backend into an ODB source has been merged upstream. :arrow_forward: **next**: - We only have one more backend that needs to be converted into an ODB source, which is the "packed" backend. Once that's done we have finished with the foundational refactorings, and the next step would then be to send out the patch series that convert more functionality to become pluggable. _Copied from https://gitlab.com/groups/gitlab-org/-/epics/20440#note_3419391194_ <!-- STATUS NOTE END --><br/>• https://gitlab.com/groups/gitlab-org/-/epics/19719+ **2026-03-05**: :clock1: **total hours spent this week by all contributors**: 6 :tada: **achievements**: - The patch series that introduces the "files" backend has been merged now. This means that we have landed the initial pluggable infrastructure in upstream Git that allows us to swap out the object database format. While this initial infrastructure is still limited in scope, this is still a significant milestone. This epic can thus be closed. :arrow_forward: **next**: - While the initial infrastructure has landed, we'll need to make more functionality pluggable. This work is tracked as part of https://gitlab.com/groups/gitlab-org/-/work_items/20440+. _Copied from https://gitlab.com/groups/gitlab-org/-/epics/19719#note_3132940536_ <!-- STATUS NOTE END --><br/>• https://gitlab.com/groups/gitlab-org/-/epics/18599+ <br/>• https://gitlab.com/groups/gitlab-org/-/epics/15062+ <br/>• https://gitlab.com/groups/gitlab-org/-/epics/17821+ **2026-01-06**: :clock1: **total hours spent this week by all contributors**: 4 :tada: **achievements**: - A [minor patch series](https://gitlab.com/gitlab-org/git/-/merge_requests/463) that fixes some bugs related to the object database has been merged. :issue-blocked: **blockers**: - Multiple patch series related to pluggable object databases are currently under review on the Git mailing list. We cannot progress further until those have been merged. _Copied from https://gitlab.com/groups/gitlab-org/-/epics/17821#note_2985075263_ <!-- STATUS NOTE END --><br/>• https://gitlab.com/groups/gitlab-org/-/epics/15063+ <br/> |
### :rotating_light: Epics that need attention
These linked epics are not in the correct state or missing a workflow label
<details>
| **Topic** | **Links** | **Reason** |
|-----------|-----------|-------------|
| [Git Backend Stage 2 — MVCC-Packfile migration](https://gitlab.com/groups/gitlab-org/-/epics/22236) <br/> (+0) <br/> group::git | Labeling problem, epic has no workflow label |
| [Scalable Git Backend POC](https://gitlab.com/groups/gitlab-org/-/epics/22230) <br/> (+0) <br/> | Labeling problem, epic has no workflow label |
| [Git Backend Stage 3 — Migration to Object Storage](https://gitlab.com/groups/gitlab-org/-/epics/22227) <br/> (+0) <br/> group::gitaly | Labeling problem, epic has no workflow label |
| [Git Backend Stage 4 — Naive Clustering (PoC)](https://gitlab.com/groups/gitlab-org/-/epics/22229) <br/> @jamesliu-gitlab (+0) <br/> group::gitaly | Labeling problem, epic has no workflow label |
| [Discussion: Gitaly Clustering and Routing for the new Git backend](https://gitlab.com/groups/gitlab-org/-/epics/22205) <br/> (+0) <br/> group::gitaly | Labeling problem, epic has no workflow label |
| [Cloud storage connection pooling via unix socket proxy](https://gitlab.com/groups/gitlab-org/-/epics/21955) <br/> (+0) <br/> group::gitaly | Labeling problem, epic has no workflow label |
</details>
epic