Skip to content

Rename, upload, purge scylla manifests - #4794

Closed
Michal-Leszczynski with Copilot wants to merge 6 commits into
ml/143-rename-and-upload-scylla-manifestfrom
copilot/sub-pr-4793
Closed

Rename, upload, purge scylla manifests#4794
Michal-Leszczynski with Copilot wants to merge 6 commits into
ml/143-rename-and-upload-scylla-manifestfrom
copilot/sub-pr-4793

Conversation

Copilot AI commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

Handles the 3 new manifest fields added in #4787: per-node/per-table scylla manifests, tablet replication type, and scylla version.

Scylla manifests are renamed with tag_<snapshot_tag>_node_<node_ID>_ prefix to avoid collisions across snapshots/nodes sharing the same SSTable directory, then moved from local snapshot dir to remote storage.

Changes

  • worker_manifest: Rename and upload scylla manifests alongside manager manifest. Populate ScyllaVersion and ReplicationType fields in manifest content.
  • worker_index: Collect scylla manifest filenames during snapshot indexing (previously deleted them).
  • purger: forEachDirInManifestforEachIndexInManifest to expose full FilesMeta. Scylla manifests are always purged with their snapshot (no deduplication protection needed — names are unique per tag+node).
  • worker_deduplicate / versioning: Skip scylla manifests when iterating remote SSTable dirs.
  • rcserver: Allow movefile from local to remote (or(sameDir(), localToRemote())).
  • downloader: Range-over-index style to avoid copying FilesMeta structs.
  • tests: Integration tests updated to track scylla manifests as a separate file category. Unit test added for renameScyllaManifest. Fixed copy-paste error in validateScyllaManifestFileName error message.

Please make sure that:

  • Code is split to commits that address a single change
  • Commit messages are informative
  • Commit titles have module prefix
  • Commit titles have issue nr. suffix

💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Michal-Leszczynski and others added 5 commits March 16, 2026 15:32
Since scylla requires scylla manifests during tablet aware restore,
they need to be backed up alongside sstables (scylla assumes that
sstables mentioned in manifest and the manifest are in the same dir).
Since scylla names its manifests as simple "manifest.json", they
need to be renamed with more unique name when backed up to common
backup dir. Assuming that we store manifests from different tables
in different dirs, adding snapshot tag and node ID info to scylla
manifest name does the trick. To handle renaming process correctly,
manifests keep their original name in the snapshotDir, but are renamed
when passed to FilesMeta part of the manifest.

Fixes https://scylladb.atlassian.net/browse/CLOUD-143
Tablet aware restore effort made it so scylla manifests are stored
alongside backed up sstables. This impacts iterating over /sst backup
dir when looking at manifest index. This commit adjusts that so that
forEachDirInManifest no longer looks just at the sst files, but gives
the ability to look at over either/both sst and scylla manifest files
to the caller.
Tablet aware restore effort made it so scylla manifests are stored
alongside backed up sstables. This impacts iterating over remote
/sst dir with rclone methods. This commit adjusts that so that we
take either or both sst files and scylla manifest files when
methods like RcloneListDirIter are used.
The addition of scylla manifest to backup procedure requires
many adjustments in backup test logic. In some places they
need to be skipped, in some verified.

Most of the verification comes from updating listS3Files
helper method to return scylla manifests separately from
sstable files. In all places where this method is used,
scylla manifests validation is performed. Already existing
tests validating various aspects of backup procedure:
- TestBackupSmokeIntegration
- TestBackupTemporaryManifestsIntegration
- TestPurgeIntegration
- TestDeleteSnapshotIntegration
- TestValidateIntegration
were adjusted to also consider scylla manifests.
…ight changes

Co-authored-by: Michal-Leszczynski <74614433+Michal-Leszczynski@users.noreply.github.com>
Copilot AI changed the title [WIP] [CLOUD-143] Rename, upload, purge scylla manifests Rename, upload, purge scylla manifests Mar 16, 2026
@Michal-Leszczynski
Michal-Leszczynski force-pushed the ml/143-rename-and-upload-scylla-manifest branch from 5403b10 to bbe1960 Compare March 16, 2026 16:19
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