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

Restore improvements #3986

Draft
wants to merge 15 commits into
base: master
Choose a base branch
from
Draft

Restore improvements #3986

wants to merge 15 commits into from

Commits on Sep 2, 2024

  1. Configuration menu
    Copy the full SHA
    948adde View commit details
    Browse the repository at this point in the history
  2. refactor(restore): wrap smaller stages into separate functions

    This decreases main function complexity.
    Noticed by: cognitive complexity 66 of func `(*tablesWorker).restore` is high (> 50) (gocognit).
    Michal-Leszczynski committed Sep 2, 2024
    Configuration menu
    Copy the full SHA
    d99b4b5 View commit details
    Browse the repository at this point in the history
  3. feat(restore_test): validate that compaction and tombstone_gc are dis…

    …abled and enabled
    
    As a preparation for restoring data, SM should disable tombstone_gc and compaction.
    They should be re-enabled after the restore finishes.
    Michal-Leszczynski committed Sep 2, 2024
    Configuration menu
    Copy the full SHA
    5a3c05a View commit details
    Browse the repository at this point in the history
  4. feat(restore): new indexing and batching approach

    The idea is to first index all files to be restored, so that we can create better batches. Restore workload is aggregated first by table, then by remote sstable dir.
    
    From batching we expect:
    - batch contains X*shard_cnt sstables
    - batch contains similarly sized sstables
    - batch is created from any manifest/table - no waiting for manifest/table restore to finish
    - workload across different nodes is evenly distributed
    - --batch-size is ignored, batches are aiming to have size equal to 5% of expected node workload
    
    New flag --table-parallel - it allows for running multiple download and l&s jobs from the same node (no documentation as it might not be exposed later on).
    Michal-Leszczynski committed Sep 2, 2024
    Configuration menu
    Copy the full SHA
    cf29ed4 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    8cb67ff View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    3dfdae6 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    84f0790 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    258310a View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    b47e813 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    96820e5 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    d498511 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    7fcc9be View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    48154eb View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    97425bd View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    98da79f View commit details
    Browse the repository at this point in the history