Repository navigation
support Antalya CAS disks for embedded backup/restore, fix #1562 - #1656
Merged
Merged
Conversation
Antalya `metadata_type=cas` disks keep parts as content-addressed objects in the pool, system.disks.path is a bucket prefix without any local directory behind it. create_remote failed in checkDisksConsistency with "is not exists locally", and restore_remote failed in fixEmbeddedMetadata because credentialsFromDiskArgs rejected `<metadata_type>cas</metadata_type>` while parsing credentials of all server disks. - checkDisksConsistency skips CAS disks when use_embedded_backup_restore is enabled, otherwise reports an explicit error: FREEZE on CAS publishes shadow refs in the pool, there are no local files to hardlink - credentialsFromDiskArgs accepts metadata_type=cas, connection settings are the same as for other object storage disks - TestAntalyaCASDisk runs embedded create_remote/restore_remote for a table on cas+cache disk, requires altinity antalya image >= 26.6
Coverage Report for CI Build 40926125661Coverage increased (+0.02%) to 70.568%Details
Uncovered ChangesNo uncovered changes found. Coverage Regressions17 previously-covered lines in 7 files lost coverage.
Coverage Stats
💛 - Coveralls |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix #1562
Antalya
metadata_type=casdisks keep parts as content-addressed objects in the pool.system.disks.pathfor such a disk is a bucket prefix with no local directory behind it.Problem
create_remotewithuse_embedded_backup_restore: truefailed incheckDisksConsistency:disk "cas" (type "s3") path "/var/lib/clickhouse/<prefix>/" is not exists locallyrestore_remotefailed infixEmbeddedMetadata→getObjectDisksCredentials:unsupported <metadata_type>cas</metadata_type>, because credentials are parsed for every server diskChanges
checkDisksConsistencyskips CAS disks whenuse_embedded_backup_restore: true. Without embedded mode it now reports an explicit error:FREEZEon CAS publishes shadow refs inside the pool, so there are no local files to hardlink.credentialsFromDiskArgsacceptsmetadata_type=cas, which uses the same connection settings as other object storage disks.Disk.IsCAS()Tests
TestCheckDisksConsistency(CAS with and without embedded), CAS case inTestCredentialsFromDiskArgs_XMLAndSQLParityTestAntalyaCASDiskruns embeddedcreate_remote→DROP→restore_remotefor a table oncas+cas_cachedisks (the reporter's layout), then checks the row count and that the restored parts are back on the CAS disks.It runs only on the Antalya image and is skipped elsewhere. Passes locally with:
skip_access_check=true, the same as the reporter's config.The CI integration matrix has no Antalya image yet, so
TestAntalyaCASDiskis skipped in CI.🤖 Generated with Claude Code