containerd / accelerated-container-image

A production-ready remote container image format (overlaybd) and snapshotter based on block-device.
Apache License 2.0
411 stars 76 forks source link

Remote image access performance improvement, by peer-to-peer distribution system #34

Closed Coldwings closed 3 years ago

Coldwings commented 3 years ago

OverlayBD provides block device with rootfs using remote image, the performance is highly associated with registry throughput and latency. Large scale container launch may cause hot spot on registry, and P2P distribution system should help.

liulanzheng commented 3 years ago

how does overlaybd connect to p2p service? as a party of overlaybd backstore, or as an http proxy that worked transparently to overlaybd, or connect overlaybd to a p2p agent?

Coldwings commented 3 years ago

how does overlaybd connect to p2p service? as a party of overlaybd backstore, or as an http proxy that worked transparently to overlaybd, or connect overlaybd to a p2p agent?

I think http transparent proxy-like application supposed to be a good choice, so that overlaybd will have no needs to make change for p2p distribution. this suppose to intercept get blob requests

liulanzheng commented 3 years ago

@Coldwings come on, boy. commit your codes!

beyou923 commented 2 years ago

hello, can the current p2p code work?

Coldwings commented 2 years ago

hello, can the current p2p code work?

P2P code in this repo is basicly able to work, but still having a lot work to be done.

The P2P image transportation now have a standalone repo. However, it will be re-designe in nearly future.

beyou923 commented 2 years ago

hello, can the current p2p code work?

P2P code in this repo is basicly able to work, but still having a lot work to be done.

The P2P image transportation now have a standalone repo. However, it will be re-designe in nearly future.

Is there deployment documentation? When the container engine pulls the image, the uri is generally like this: /v2/ImageName/blobs/sha256:xxxxx , but the code is like this:

dadi-p2proxy/pkg/p2p/server/proxy_server.go

Line 41 in cc3f176

const matchPattern = "./v2/blobs/sha256/./data"