Docker container images are typically stored in a centralized registry to allow easy sharing of images. However, with the growing popularity of containerized software, the number of images that a registry needs to store and the rate of requests it needs to serve are increasing rapidly. Current registry design requires hosting registry services across multiple loosely connected servers with different roles such as load balancers, proxies, registry servers, and object storage servers. Due to the various individual components, registries are hard to scale and benefits from optimizations such as caching are limited. In this paper we propose, implement, and evaluate BOLT-a new hyperconverged design for container registries. In BOLT, all registry servers are part of a tightly connected cluster and play the same consolidated role: each registry server caches images in its memory, stores images in its local storage, and provides computational resources to process client requests. The design employs a custom consistent hashing function to take advantage of the layered structure and addressing of images and to load balance requests across different servers. Our evaluation using real production workloads shows that BOLT outperforms the conventional registry design significantly and improves latency by an order of magnitude and throughput by up to 5x. Compared to state-of-the-art, BOLT can utilize cache space more efficiently and serve up to 35% more requests from its cache. Furthermore, BOLT scales linearly and recovers from failure recovery without significant performance degradation.
|Original language||English (US)|
|Title of host publication||Proceedings - 2019 IEEE International Conference on Cloud Computing, CLOUD 2019 - Part of the 2019 IEEE World Congress on Services|
|Editors||Elisa Bertino, Carl K. Chang, Peter Chen, Ernesto Damiani, Michael Goul, Katsunori Oyama|
|Publisher||IEEE Computer Society|
|Number of pages||9|
|State||Published - Jul 2019|
|Event||12th IEEE International Conference on Cloud Computing, CLOUD 2019 - Milan, Italy|
Duration: Jul 8 2019 → Jul 13 2019
|Name||IEEE International Conference on Cloud Computing, CLOUD|
|Conference||12th IEEE International Conference on Cloud Computing, CLOUD 2019|
|Period||7/8/19 → 7/13/19|
Bibliographical noteFunding Information:
This work is sponsored in part by the NSF under the grants: CNS-1405697, CNS-1615411, and CNS-1565314/1838271.
© 2019 IEEE.
- Container distribution
- Container performance
- Docker design
- Docker performance
- Docker Registry
- hyper converged infrastructure