Skip to content
GitLab
Next
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • GitLab GitLab
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 44,761
    • Issues 44,761
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 1,330
    • Merge requests 1,330
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GitLab.orgGitLab.org
  • GitLabGitLab
  • Issues
  • #26600
Closed
Open
Issue created Feb 07, 2019 by Nick Thomas@nick.thomas🆓Contributor

Deprecate background upload

Problem to solve

GitLab currently supports object storage for a range of providers. It is highly configurable. There are two types of upload-to-object-storage mechanism:

  • Background upload
  • Direct upload

Two is too many. We should have a single mechanism if at all possible.

Target audience

  • Sidney, Systems Administrator, https://design.gitlab.com/research/personas#persona-sidney

Further details

Uploads to object storage should happen through direct_upload so that GitLab deployments are cloud-native-ready.

The only known case where background upload is necessary is when using an object storage provider for which direct uploads are not working. We found this to be true for OpenStack when using their Swift API: https://docs.gitlab.com/ee/administration/object_storage.html#openstack-compatible-connection-settings. We do support Open Stack through their S3 compatible API, however.

According to https://app.periscopedata.com/app/gitlab/679200/Enablement::Memory, OpenStack is in use in self-managed installations for the following buckets:

  • lfs
  • artifacts
  • packages

The reported events are 3 orders of magnitude less frequent than the most popular options like AWS.

Proposal

Remove background upload as an option, and always use direct upload instead

What does success look like, and how can we measure that?

As a systems administrator, I don't have to think about how GitLab orchestrates the transfer of files into object storage. There should be a single, right way to do it, that works with all supported object stores, and doesn't require lots of complicated moving parts in the background. Namely: direct upload. We should remove background upload if at all possible.

Links / references

Edited Mar 22, 2022 by Matthias Käppler
Assignee
Assign to
Time tracking