Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set Scylla user task TTL when using native Scylla API #4238

Draft
wants to merge 18 commits into
base: ml/scylla-api
Choose a base branch
from

Conversation

Michal-Leszczynski
Copy link
Collaborator

Rebased on #4192.

Fixes #4158

We need to extend run progress with Scylla task ID.
Moreover, we need it to be a part of the clustering key
Otherwise, we won't be able to store multiple run progresses
with the same remote sstable dir and host in the DB.
That's why we need to re-create the table.
It also allows us to rename manifest path and versioned
progress to more suitable names.
The downside is that users will lose their restore progress
history on upgrade, but this shouldn't harm anybody
if communicated properly.
It's good to have it specified in our codebase.
E.g. the knowledge about the TOC component will
be necessary for native Scylla restore.
This commit extends SSTable structure with
its TOC component, which is needed when using
Scylla restore API.
Moreover, it introduces batch types, which are
also needed for deciding, whether given batch
can be restored with Scylla restore API or
the Rclone API.
It also makes sure that all SSTables within
the same batch belong to the same batch type.
It's better to do it at the start so that:
- we don't need to do it per restore type
- we don't create and immediately return the batch
This commit adds code for using Scylla restore API.
Luckily for us, handling pause/resume
is analogous to the Rclone API handling.

Fixes #4144
Fixes #4137
With native Scylla restore, we can gradually update
restored bytes progress.
This commit adds new metrics:
- restored_bytes
- restore_duration
which are counterparts of the similar
downloaded and streamed metrics.

It also adds new restore state (RestoreStateNativeRestore)
which describes the usage of native Scylla restore
This commit makes TestRestoreTablesPreparationIntegration
check for the proper API used for restore.
This commit makes TestRestoreTablesPreparationIntegration check
for proper Scylla user task TTL set before/during/after restore.
@Michal-Leszczynski Michal-Leszczynski marked this pull request as draft February 3, 2025 11:29
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.

1 participant