Skip to content

PXB-3643 [8.0] : Improve xbcloud delete to support Hierarchical Namespaces - #1726

Merged
satya-bodapati merged 1 commit into
percona:8.0from
satya-bodapati:8.0
Jan 29, 2026
Merged

PXB-3643 [8.0] : Improve xbcloud delete to support Hierarchical Namespaces#1726
satya-bodapati merged 1 commit into
percona:8.0from
satya-bodapati:8.0

Conversation

@satya-bodapati

Copy link
Copy Markdown
Contributor

https://perconadev.atlassian.net/browse/PXB-3643

Problem:

On Azure platform, buckets with HNS (Hierarchical Namespaces) enabled, xbcloud delete operation failed.

Analysis:

When HNS is enabled on Azure, it is no longer a flatnamespace, meanining just deleting objects as files is not sufficient. Deleting a dir before deleting all the files in directory caused delete failure.

Refactor xbcloud delete to work with HNS-style directories by listing files and directories separately. Introduce a partitioned listing API with a default implementation and add Azure-specific directory detection using ResourceType. Refactor Azure listing parsing logic, and introduce a separate listin logic only for delete.

With this new listing logic, xbcloud will receive information about files and directories. xbcloud will delete all files first and then delete the directories.

@satya-bodapati

Copy link
Copy Markdown
Contributor Author

@satya-bodapati satya-bodapati changed the title PXB-3643: Improve xbcloud delete to support Hierarchical Namespaces PXB-3643 [8.0] : Improve xbcloud delete to support Hierarchical Namespaces Jan 27, 2026
@satya-bodapati

Copy link
Copy Markdown
Contributor Author

8.4 version: #1727

Comment thread storage/innobase/xtrabackup/src/xbcloud/object_store.cc Outdated
https://perconadev.atlassian.net/browse/PXB-3643

Problem:
--------
On Azure platform, buckets with HNS (Hierarchical Namespaces) enabled, xbcloud
delete operation failed.

Analysis:
---------
When HNS is enabled on Azure, it is no longer a flatnamespace, meanining just
deleting objects as files is not sufficient. Deleting a dir before deleting all
the files in directory caused delete failure.

Refactor xbcloud delete to work with HNS-style directories by listing files and
directories separately. Introduce a partitioned listing API with a default
implementation and add Azure-specific directory detection using ResourceType.
Refactor Azure listing parsing logic, and introduce a separate listin logic only
for delete.

With this new listing logic, xbcloud will receive information about files
and directories. xbcloud will delete all files first and then delete the directories.
@satya-bodapati
satya-bodapati merged commit c9efec7 into percona:8.0 Jan 29, 2026
3 checks passed
satya-bodapati added a commit to satya-bodapati/percona-xtrabackup that referenced this pull request Jun 23, 2026
…cloud migration table

Rewrite cloud_direct.md to reflect the new provider-explicit option
model:

  - Add a "Bucket and prefix syntax" section explaining the new
    BUCKET/PREFIX form across all four backends, with HNS-safety
    notes (leading/trailing-slash strip; never PUT a key ending in '/').

  - Refresh the Backup / Download / Delete examples to use
    --cloud-s3-bucket=BUCKET/PREFIX instead of the dropped generic
    --cloud-bucket.

  - Reorganize the CLI catalog into Common / S3 / GCS / Azure / Swift
    subsections.  All 17 --cloud-swift-* options + 6 parity options
    (--cloud-verbose, --cloud-s3-api-version, --cloud-azure-development-
    storage, --cloud-curl-retriable-errors, --cloud-http-retriable-
    errors, --cloud-header) documented.

  - New "xbcloud -> xtrabackup option migration" section -- a series of
    1:1 mapping tables (S3, GCS, Azure, Swift, common HTTP/retry,
    multipart) so existing xbcloud scripts can be ported mechanically.

  - "Removed options" subsection explains why --cloud-bucket (generic),
    --md5 (deferred to per-file SHA-256, task percona#54), --cloud-multipart-
    upload, and --cloud-multipart-memory-budget are absent.

  - Limitations updated:
      * sparse-files note replaced -- manifest-driven sparse_map now
        lands by default (PXB-3754 work integrated earlier in this
        branch).
      * Added HNS --delete note referencing PXB-3643 / PR percona#1726.
      * Added per-file SHA-256 verification deferral note pointing
        at task percona#54.

https://perconadev.atlassian.net/browse/PXB-3671
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