[FR] MLflow Server-side periodic GC operation to clean deleted Experiments, runs, and artifacts
#14,988 opened on 2025/03/13
Repository metrics
- Stars
- (17,127 個のスター)
- PR merge metrics
- (平均マージ 2d 9h) (30d で 246 merged PRs)
説明
Willingness to contribute
No. I cannot contribute this feature at this time.
Proposal Summary
We have a cli command, mlflow gc that is backed by code that will run a cleanup process on entities in MLflow that have been tombstone marked for deletion.
Currently, users need to manually execute mlflow gc from the server's command line in order to clean up anything that they have marked for deletion.
There isn't anything stopping us from running this as a background process on the tracking server at a configurable interval to automatically (opt-in) perform this maintenance operation.
The ask to the community is:
Are you interested in making this happen?
Do you have bandwidth to integrate with that cli-backed logic that exists and create a server side process that will run this logic?
If the answer to both of those question is 'yes' please respond in this issue and volunteer for the contribution!
Motivation
What is the use case for this feature?
Automates an arguably annoying process that causes excessive artifacts to reside on storage for extended periods of time.
Why is this use case valuable to support for MLflow users in general?
Everyone has experiments and runs that they've deleted. Many don't know until getting a storage bill that those objects aren't actually cleaned up until an admin runs mlflow gc.
Why is this use case valuable to support for your project(s) or organization?
I think that most people who run their own tracking server would want this.
Why is it currently difficult to achieve this use case?
It's only a cli command at the moment and it really can be easily automated.
Details
No response
What component(s) does this bug affect?
-
area/artifacts: Artifact stores and artifact logging -
area/build: Build and test infrastructure for MLflow -
area/deployments: MLflow Deployments client APIs, server, and third-party Deployments integrations -
area/docs: MLflow documentation pages -
area/examples: Example code -
area/model-registry: Model Registry service, APIs, and the fluent client calls for Model Registry -
area/models: MLmodel format, model serialization/deserialization, flavors -
area/recipes: Recipes, Recipe APIs, Recipe configs, Recipe Templates -
area/projects: MLproject format, project running backends -
area/scoring: MLflow Model server, model deployment tools, Spark UDFs -
area/server-infra: MLflow Tracking server backend -
area/tracking: Tracking Service, tracking client APIs, autologging
What interface(s) does this bug affect?
-
area/uiux: Front-end, user experience, plotting, JavaScript, JavaScript dev server -
area/docker: Docker use across MLflow's components, such as MLflow Projects and MLflow Models -
area/sqlalchemy: Use of SQLAlchemy in the Tracking Service or Model Registry -
area/windows: Windows support
What language(s) does this bug affect?
-
language/r: R APIs and clients -
language/java: Java APIs and clients -
language/new: Proposals for new client languages
What integration(s) does this bug affect?
-
integrations/azure: Azure and Azure ML integrations -
integrations/sagemaker: SageMaker integrations -
integrations/databricks: Databricks integrations