Keep Around Refs Working Group

The keep-around refs working group addresses the problem of unbounded keep around references

Attributes

Property Value
Date Created July 8, 2024
End Date TBD
Slack #wg_keep-around-refs (only accessible from within the company)
Google Doc Working Group Agenda
Issue Board Working Group Issue Board
Overview & Status Main Epic

Scope and Definitions

In the context of this working group:

  1. keep-around refs: Git references created through Gitaly to ensure certain Git data does not get pruned by Gitaly.

Exit criteria

  1. Rails tracks keep-around references it creates as well as the entities that depend on the Git objects it holds onto.
  2. Rails removes keep-around references when they are no longer needed by any entity.
  3. Rails prevents keep-around references from being created in an unbounded way.

Overarching Goals

  1. Git operations are performant even for large repositories with many merge requests, pipelines, etc.

Future goals

  1. A retention policy is set for keep around refs.
  2. Migrate existing and unneeded keep around refs on GitLab.com:
    • Dependencies between existing keep-around references and the database entities are recorded and maintained.
    • Existing unneeded keep-around references are removed.

Roles and Responsibilities

Working Group Role Person Title
Executive Stakeholder Tim Zallmann Senior Director, ~“Department::Development”
Facilitator/DRI James Fargher Senior Backend Engineer, ~“group::gitaly”
Product DRI Mark Wood Product Manager, ~“group::gitaly”
Member Sami Hiltunen Staff Backend Engineer, ~“group::gitaly”
Member John Cai Engineering Manager, ~“group::gitaly”
Member David Kim Senior Backend Engineer, ~“group::code review”
Member Kai Armstrong Principal Product Manager, ~“group::code review”
Member Hordur Freyr Yngvason Senior Backend Engineer, ~“group::pipeline execution”
Member Vasilii Iakliushin Staff Backend Engineer, ~“group::source code”
Member Furkan Ayhan Senior Backend Engineer, ~“group::pipeline authoring”