Docker 1.10 uses a new content-addressable storage for images and layers.
This is really interesting.
Sounds like the up/download manager has improved too. I did some early work adding parallel stuff to that (which was then very helpfully refactored into actually decent go code :), thanks docker team) and it's great to see it improved. I remember some people looking at adding torrenting for shunting around layers, I guess this should help along that path too.
IIRC, Docker has used content-addressable storage for layers for a very long time (in the form of filesystem directories whose names looked like md5 hashes). I'm not sure what's changed. Maybe just the hash function?
Correct, layers were hashed for verification at upload and download, then stored on a "regular" uuid-addressed storage. Now they are stored in a true content-addressed store end-to-end.
Comments
This is really interesting.
Sounds like the up/download manager has improved too. I did some early work adding parallel stuff to that (which was then very helpfully refactored into actually decent go code :), thanks docker team) and it's great to see it improved. I remember some people looking at adding torrenting for shunting around layers, I guess this should help along that path too.
IIRC, Docker has used content-addressable storage for layers for a very long time (in the form of filesystem directories whose names looked like md5 hashes). I'm not sure what's changed. Maybe just the hash function?
Layer IDs were random UUIDs before.
Correct, layers were hashed for verification at upload and download, then stored on a "regular" uuid-addressed storage. Now they are stored in a true content-addressed store end-to-end.