Skip to content

[WIP] Preunpack right after downloading#9138

Closed
ike-ma wants to merge 1 commit intocontainerd:mainfrom
ike-ma:preunpack
Closed

[WIP] Preunpack right after downloading#9138
ike-ma wants to merge 1 commit intocontainerd:mainfrom
ike-ma:preunpack

Conversation

@ike-ma
Copy link

@ike-ma ike-ma commented Sep 25, 2023

This is a WIP PR to get feedback from community

Related issue: #8881

Hight level idea of pre-unpacking is to decompress the fetched layer right away in parallel in goroutine (as oppose to decompress in serial later on)

  • [Producer] Create prefetched layer
    • pkg/unpacker.go: Generate the preunpacked
  • [Consumer] Use prefetched layer
    • diff.Apply -> diff.apply_linux.apply -> archive.tar.Apply() -> archive.tar.applyNative()
  • [Wiring]
    • archive/tar_opts.go : Add UsePreunpackedLayer related config
  • Convention
    • Preunpacked layer are stored in /var/lib/containerd/tmpoverlayfs/blobs/DIGEST.unpack
    • .unpack file contains the following
      • Line 1: sha256sum
      • Line 2: size of tar
      • Line 3 and beyond: List of diff

@k8s-ci-robot
Copy link

Hi @ike-ma. Thanks for your PR.

I'm waiting for a containerd member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@dmcgowan dmcgowan marked this pull request as draft September 25, 2023 23:24
Copy link

@elfinhe elfinhe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe need to

  • Add more context for where the preunpacked layers are stored.
  • On which filesystem it will work.
  • Add some initial results for observed improvements.

@cookieisaac
Copy link

/reviewer @dmcgowan
/reviewer @samuelkarp

@samuelkarp
Copy link
Member

Please sign your commit. Even for draft PRs we'd like to get some signal from CI and it won't pass the Project Checks step without a sign-off line.

@k8s-ci-robot
Copy link

PR needs rebase.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@github-actions
Copy link

This PR is stale because it has been open 90 days with no activity. This PR will be closed in 7 days unless new comments are made or the stale label is removed.

@github-actions github-actions bot added the Stale label Feb 28, 2024
@azr
Copy link
Contributor

azr commented Feb 29, 2024

Hello there ! Nice PR
Sorry to bump this, but, I'm interested !
Is this going stale ? I have little containerd exp, but, can take it from here ?

  • I can sign commits for the CI to run
  • I also saw that this PR executes bash commands should I convert that to a pure go call ?
  • this PR added some unix specific calls, I have no clue if this should also work on windows (I'm mainly unix interested)

Is this blocked by something else ?

@elfinhe
Copy link

elfinhe commented Feb 29, 2024

Hello there ! Nice PR Sorry to bump this, but, I'm interested ! Is this going stale ? I have little containerd exp, but, can take it from here ?

  • I can sign commits for the CI to run
  • I also saw that this PR executes bash commands should I convert that to a pure go call ?
  • this PR added some unix specific calls, I have no clue if this should also work on windows (I'm mainly unix interested)

Is this blocked by something else ?

Happy if someone can take over the work here. I did create the hacky prototype, but now the team didn't get enough resource to prioritize the work. But I can help communicate through containerd maintainers to figure out the next steps.

@github-actions github-actions bot removed the Stale label Mar 1, 2024
@azr
Copy link
Contributor

azr commented Mar 1, 2024

But I can help communicate through containerd maintainers to figure out the next steps.

Oh, yes please ! 😄 happy to pull/help here !

@azr azr mentioned this pull request Mar 4, 2024
@github-actions
Copy link

This PR is stale because it has been open 90 days with no activity. This PR will be closed in 7 days unless new comments are made or the stale label is removed.

@github-actions github-actions bot added the Stale label May 31, 2024
@github-actions
Copy link

github-actions bot commented Jun 7, 2024

This PR was closed because it has been stalled for 7 days with no activity.

@github-actions github-actions bot closed this Jun 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants