Skip to content

Distributed delete runs no longer overlap#441

Merged
klauspost merged 2 commits intominio:masterfrom
dbishop:no-overlapping-deletes-just-for-delete-run
Dec 29, 2025
Merged

Distributed delete runs no longer overlap#441
klauspost merged 2 commits intominio:masterfrom
dbishop:no-overlapping-deletes-just-for-delete-run

Conversation

@dbishop
Copy link
Contributor

@dbishop dbishop commented Dec 18, 2025

Community Contribution License

All community contributions in this pull request are licensed to the project maintainers
under the terms of the Apache 2 license.
By creating this pull request I represent that I have the right to license the
contributions to the project maintainers under the Apache 2 license.

Description

This patch makes each client only delete a partition (based on a hash of the object path) of the full object list.

This patch does NOT try to address the server and all clients trying to run Cleanup() for non-delete benchmark types. That is to say, this patch does not mess with Common.deleteAllInBucket().

Motivation and Context

Previously, when a distributed (more than one client) delete benchmark deleted objects with --list-existing, all clients would try to delete all objects. This resulted in a lot of spurious errors.

This fix doesn't same much wall time, but it will lower load on the object storage system and keeps the logs cleaner.

How to test this PR?

There may be other ways to trigger the errors, but we we do is run a final delete with --list-existing (after separate PUT and GET phases).

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Optimization (provides speedup with no functional changes)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • Fixes a regression (If yes, please add commit-id or PR # here)
  • Unit tests added/updated
  • Internal documentation updated
  • Create a documentation update request here

Previously, when a distributed (more than one client) delete benchmark
deleted objects with --list-existing, all clients would try to delete
all objects.  This resulted in a lot of spurious errors.

This patch makes each client only delete a partition (based on a hash of
the object path) of the full object list.

This patch does NOT try to address the server and all clients trying to
run Cleanup() for non-delete benchmark types.  That is to say, this
patch does not mess with Common.deleteAllInBucket().
Copy link
Collaborator

@klauspost klauspost left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@klauspost klauspost merged commit b0bcb02 into minio:master Dec 29, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants