Skip to content

Conversation

@ktock
Copy link
Member

@ktock ktock commented Dec 7, 2020

#184

This includes the following changes

  • fixing the docs to focus on eStargz
  • updating the benchmark result to the recent one
  • fixing README to make each sentence start from the new line

However current OCI Image Spec uses tar and tar.gz archive formats for archiving layers, which don't suit to this use-case because of the following reasons,
When lazily pulling an image from the registry, necessary chunks of its layers are fetched *on-demand* during running the container, instead of downloading the entire contents of that image at once.
For achieving this, runtimes need to *selectively* fetch and extract files contents in the layer.
However current OCI/Docker Image Spec uses tar (optionally with compression) for archiving layers, which doesn't suit to this use-case because of the following reasons,
Copy link
Member

Choose a reason for hiding this comment

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

However -> However,

Copy link
Member Author

Choose a reason for hiding this comment

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

Fixed this.

Corresponding to the chunks after 2nd, TOCEntries typed `chunk` MUST be contained.
`chunk`-typed TOCEntry must set offset, chunkOffset and chunkSize properties.

- **`size`** *int64*
Copy link
Member

Choose a reason for hiding this comment

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

Isn't this uint64?

Copy link
Member Author

Choose a reason for hiding this comment

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

Fixed this. The implementation will be following-up PRs.


This OPTIONAL property contains the permission and mode bits.

- **`uid`** *int*
Copy link
Member

Choose a reason for hiding this comment

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

uint

Copy link
Member Author

Choose a reason for hiding this comment

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

Fixed this. The implementation will be following-up PRs.

22 bytes Extra field (fmt.Sprintf("%016xSTARGZ", offsetOfTOC))
5 bytes flate header
8 bytes gzip footer
(End of the eStargz blob)
Copy link
Member

Choose a reason for hiding this comment

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

Is this section about plain stargz or eStargz?

Copy link
Member Author

Choose a reason for hiding this comment

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

Fixed the footer section to make it compliant to Extra field in RFC 1952 (thus eStargz's footer).
The implementation will be the following-up PR.

@ktock ktock force-pushed the docs-esgz branch 2 times, most recently from 3518c81 to 9aa303c Compare December 7, 2020 15:11
(End of eStargz)
```

*NOTE that though eStarz is compatible to tar.gz, it's not compatible to stargz by Google CRFS.*
Copy link
Member

Choose a reason for hiding this comment

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

Needs full explanation. The footer differs (for RFC compliance) but TOC is compatible, right?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes. Added Notes on compatibility with stargz subsection for explaining this.

This includes the following changes
- fixing the docs to focus on eStargz
- updating the benchmark result to the recent one
- fixing README to make each sentence start from the new line

Signed-off-by: Kohei Tokunaga <[email protected]>
@AkihiroSuda AkihiroSuda merged commit b1920d3 into containerd:master Dec 7, 2020
@ktock ktock deleted the docs-esgz branch October 7, 2022 13:45
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.

2 participants