nydus icon indicating copy to clipboard operation
nydus copied to clipboard

[WIP] Nydusd: introduce runtime streaming prefetching

Open hangvane opened this issue 1 year ago • 1 comments

Relevant Issue (if applicable)

If there are Issues related to this PullRequest, please list it.

Details

Streaming prefetching allows to prefetch a blob by a single prefetching request, where the request is streaming processed the partially fetched data is processed immediately.

As a result, the number of requests for starting a Wordpress container can be reduced from~115 requests to ~36 requests.

It requires build-time prefetching to pre-organize the chunks.

Still working in progress.

Types of changes

What types of changes does your PullRequest introduce? Put an x in all the boxes that apply:

  • [ ] Bug fix (non-breaking change which fixes an issue)
  • [x] New feature (non-breaking change which adds functionality)
  • [ ] Breaking change (fix or feature that would cause existing functionality to change)
  • [ ] Documentation Update (if none of the other choices apply)

Checklist

Go over all the following points, and put an x in all the boxes that apply.

  • [ ] I have updated the documentation accordingly.
  • [ ] I have added tests to cover my changes.

hangvane avatar Jan 09 '24 07:01 hangvane

Codecov Report

Attention: 919 lines in your changes are missing coverage. Please review.

Comparison is base (5f26f8e) 61.38% compared to head (945d411) 60.17%. Report is 2 commits behind head on master.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #1538      +/-   ##
==========================================
- Coverage   61.38%   60.17%   -1.22%     
==========================================
  Files         144      145       +1     
  Lines       46962    47959     +997     
  Branches    44498    45495     +997     
==========================================
+ Hits        28828    28858      +30     
- Misses      16650    17612     +962     
- Partials     1484     1489       +5     
Files Coverage Δ
rafs/src/metadata/direct_v6.rs 44.26% <ø> (ø)
storage/src/cache/filecache/mod.rs 67.83% <85.71%> (+0.33%) :arrow_up:
storage/src/cache/fscache/mod.rs 76.50% <85.71%> (+0.11%) :arrow_up:
storage/src/cache/state/mod.rs 87.83% <33.33%> (-2.44%) :arrow_down:
storage/src/meta/chunk_info_v1.rs 95.17% <0.00%> (-0.74%) :arrow_down:
rafs/src/fs.rs 31.15% <86.66%> (-3.39%) :arrow_down:
storage/src/meta/chunk_info_v2.rs 87.77% <0.00%> (-1.31%) :arrow_down:
storage/src/cache/dummycache.rs 90.90% <6.66%> (-3.64%) :arrow_down:
storage/src/cache/state/blob_state_map.rs 75.41% <0.00%> (-1.79%) :arrow_down:
storage/src/meta/mod.rs 72.47% <12.50%> (+0.08%) :arrow_up:
... and 8 more

... and 3 files with indirect coverage changes

codecov[bot] avatar Jan 18 '24 12:01 codecov[bot]