Skip to content

Added VolumeManager.deleteBulk method to use FileSystem.createBulkDelete#6443

Open
dlmarion wants to merge 4 commits into
apache:mainfrom
dlmarion:5131-bulk-delete
Open

Added VolumeManager.deleteBulk method to use FileSystem.createBulkDelete#6443
dlmarion wants to merge 4 commits into
apache:mainfrom
dlmarion:5131-bulk-delete

Conversation

@dlmarion

Copy link
Copy Markdown
Contributor

Added method to VolumeManager that accepts a collection of Paths to delete. If the underlying FileSystem supports bulk deletion, then that API method is called. Otherwise the Paths are deleted using an ExecutorService.

Reviewed the existing code that used the other delete methods in the VolumeManager. Only two places seemed like candidates for using the new deleteBulk method. The other locations either only deleted one file aperiodically, or deleted many files but using some complex logic. The former didn't make sense to modify and the latter could potentially be modified later with some refactoring.

Closes #5131

Added method to VolumeManager that accepts a collection of Paths
to delete. If the underlying FileSystem supports bulk deletion,
then that API method is called. Otherwise the Paths are deleted
using an ExecutorService.

Reviewed the existing code that used the other delete methods in
the VolumeManager. Only two places seemed like candidates for using
the new deleteBulk method. The other locations either only deleted
one file aperiodically, or deleted many files but using some complex
logic. The former didn't make sense to modify and the latter could
potentially be modified later with some refactoring.

Closes apache#5131
@dlmarion dlmarion added this to the 4.0.0 milestone Jun 23, 2026
@dlmarion dlmarion self-assigned this Jun 23, 2026
Comment thread server/base/src/main/java/org/apache/accumulo/server/fs/VolumeManagerImpl.java Outdated

for (Path p : paths) {
FileSystem fs = getFileSystemByPath(p);
Volume v = this.bulkDeleteFileSystems.get(fs);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is a bug. Just because there is an entry here by FileSystem, it doesn't mean it's retrieving the correct Volume. Multiple volumes can use the same FileSystem because a Volume is a FileSystem and base path.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Updated in 74e00c8

@dlmarion dlmarion requested a review from ctubbsii July 10, 2026 15:17
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.

FileSystem.createBulkDelete introduced in Hadoop 3.4.1

2 participants