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

Add capability of prefetch for rafs v6 format #319

Merged
merged 8 commits into from
Mar 10, 2022
Merged

Add capability of prefetch for rafs v6 format #319

merged 8 commits into from
Mar 10, 2022

Commits on Mar 10, 2022

  1. nydus-image: persist v6 prefetch table to extended super block

    Place a prefetch table which has nids for files and directories that
    needs to be prefetched. The prefetch table is very close to blobs
    table on v6 rafs extended super block.
    
    Signed-off-by: Changwei Ge <chge@linux.alibaba.com>
    changweige committed Mar 10, 2022
    Configuration menu
    Copy the full SHA
    6517f36 View commit details
    Browse the repository at this point in the history
  2. rafs/v6: implement is_hardlink() for v6 format

    Signed-off-by: Changwei Ge <chge@linux.alibaba.com>
    changweige committed Mar 10, 2022
    Configuration menu
    Copy the full SHA
    f5ad040 View commit details
    Browse the repository at this point in the history
  3. rafs/v6: perform prefetch based on v6 super block

    Load v6 prefetch table from extended super block and
    prefetch files' contents per as the table.
    
    Signed-off-by: Changwei Ge <chge@linux.alibaba.com>
    changweige committed Mar 10, 2022
    Configuration menu
    Copy the full SHA
    ef416f3 View commit details
    Browse the repository at this point in the history
  4. nydus-image: rename seek_to_offset to seek_offset

    Because seek is transitive.
    
    Signed-off-by: Changwei Ge <chge@linux.alibaba.com>
    changweige committed Mar 10, 2022
    Configuration menu
    Copy the full SHA
    e7b443e View commit details
    Browse the repository at this point in the history
  5. rafs/v6: implement collect_descendants_inodes() for rafs v6

    Rafs prefetch needs the functionality.
    
    Signed-off-by: Changwei Ge <chge@linux.alibaba.com>
    changweige committed Mar 10, 2022
    Configuration menu
    Copy the full SHA
    63f4bfc View commit details
    Browse the repository at this point in the history
  6. rafs/storage: map to blob addressable chunk infos

    V6 format does not have chunks' particualer addresses
    in bootstrap but only their indexes by which to locate each
    chunk from blob.
    For prefetch, we aslo have to map the chunks info so that
    bios can be sorted when handling prefetch requests.
    
    Signed-off-by: Changwei Ge <chge@linux.alibaba.com>
    changweige committed Mar 10, 2022
    Configuration menu
    Copy the full SHA
    1cad5da View commit details
    Browse the repository at this point in the history
  7. rafs: use real root ino when perform dynamic prefetch

    Signed-off-by: Changwei Ge <chge@linux.alibaba.com>
    changweige committed Mar 10, 2022
    Configuration menu
    Copy the full SHA
    11115bf View commit details
    Browse the repository at this point in the history
  8. nydus-image: only write extended sb once

    Right now, when prefetch enabled and xattrs packed,
    extended sb will be revised and rewritten more than
    onece. It is not necessary.
    
    Only write extended block when all the settings are
    done.
    
    Signed-off-by: Changwei Ge <chge@linux.alibaba.com>
    changweige committed Mar 10, 2022
    Configuration menu
    Copy the full SHA
    8bd4600 View commit details
    Browse the repository at this point in the history