diff --git a/docs/README.md b/docs/README.md
index d972219b..7a34c09c 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,4 +1,4 @@
-# Overlaybd — Instant Container Image Pulling, No More Waiting
+# Overlaybd - Instant Image Pulling, No More Waiting
@@ -18,14 +18,15 @@ Overlaybd is an open-source sub-project of containerd, the industry-standard con
[graduated at CNCF](https://www.cncf.io/projects/containerd/).
The project has been integrated by many organizations world-wide, most notably
[Azure Kubernetes Service's Artifact Streaming](https://learn.microsoft.com/en-us/azure/aks/artifact-streaming-overview),
-[Databricks](https://www.databricks.com/blog/booting-databricks-vms-7x-faster-serverless-compute),
+[Databricks](https://www.databricks.com/blog/booting-databricks-vms-7x-faster-serverless-compute) +
+[Superhuman](https://www.databricks.com/blog/how-superhuman-and-databricks-built-200k-qps-inference-platform-together),
[DeepSeek Elastic Compute (DSes)](https://arxiv.org/html/2606.19348v1),
[fly.io](https://community.fly.io/t/experimental-speedy-machine-creation-with-overlaybd/18958),
[hocus.dev](https://hocus.dev/blog/virtualizing-development-environments), etc.
+[Kimi AgentEnv](https://kvcache.ai/blog/agentenv-open-sourced/),
Overlaybd can also be used for virtual machines or micro sandboxes.
-
Overlaybd is the official open-sourced implementation of
two papers published in USENIX Annual Technical Conference:
@@ -43,7 +44,14 @@ Overlaybd achieves fast container startup through the following key designs:
- **On-demand (lazy) fetching**: Containers start immediately by reading image data remotely as needed,
without downloading and unpacking the entire image. A 1GB+ image can launch in under 1 second.
With proper caching / P2P transferring, overlaybd can support [launching 10,000s of containers
- within seconds](articles/dadi-aliyun-2020-en.md).
+ within seconds](dadi-aliyun-2020-en.md).
+
+- **Prefetching**: On-demand fetching can be combined with prefetching to warm up data
+ before it is needed. Two modes are supported:
+ - *Trace-based*: record the block access pattern of a prior run and replay it to
+ prefetch the same blocks ahead of the next launch.
+ - *File-list-based*: given a list of files required at startup, prefetch the blocks
+ backing those files in advance.
- **Optimized LBA lookup**: Overlaybd operates at the block level with a flat LBA address space, so
cross-layer lookup is a **single** index query regardless of layer count, whereas filesystem-based
@@ -52,7 +60,7 @@ Overlaybd achieves fast container startup through the following key designs:
Furthermore, overlaybd's multi-layer block mapping uses a highly optimized linearized B+ tree
with AVX-512 SIMD batch comparison, achieving 100s of millions of QPS on a single CPU core,
up to 10X over conventional approaches.
- [Details](https://github.com/containerd/overlaybd/blob/main/docs/lsmt_lookup.md).
+ See [this](lsmt_lookup.md) for details.
Note that this algorithm is so fast that it is [even feasible for IP address lookup in
backbone core routers](https://www.usenix.org/conference/nsdi26/presentation/zhang-zhihao).
@@ -65,25 +73,30 @@ Overlaybd achieves fast container startup through the following key designs:
transfer is reduced enough that compressed random reads are often *faster* than
uncompressed ones — the decompression cost is less than the I/O saved.
-- **High-efficiency I/O runtime**:
- The service is built on [PhotonLibOS](https://github.com/alibaba/PhotonLibOS),
- which is probably the fastest coroutine framework in the world.
-
- **Benchmark results**:
+
+
## Secure
@@ -182,16 +195,15 @@ the world:
## Open-source
-Overlaybd is developed in the open under neutral governance:
+Overlaybd is an open-source sub-project of [containerd](https://www.cncf.io/projects/containerd/)
+(a CNCF graduated project) since 2021, released under the Apache-2.0 license.
- **Source code repositories on GitHub**:
- - I/O data path: [containerd/overlaybd](https://github.com/containerd/overlaybd)
+ - Data I/O path: [containerd/overlaybd](https://github.com/containerd/overlaybd)
- Snapshotter & conversion tools: [containerd/accelerated-container-image](https://github.com/containerd/accelerated-container-image)
- P2P distribution: [data-accelerator/dadi-p2proxy](https://github.com/data-accelerator/dadi-p2proxy)
-- **Neutral governance**: An open-source sub-project of
- [containerd](https://www.cncf.io/projects/containerd/) (a CNCF graduated project) since
- 2021, released under the Apache-2.0 license. Originally proposed by Alibaba Cloud, it is
+- **Neutral governance**: Originally proposed by Alibaba Cloud, it is
maintained in the open rather than controlled by a single vendor.
- **Active, broadening community**: Beyond the core maintainers, the project receives
@@ -203,11 +215,14 @@ Overlaybd is developed in the open under neutral governance:
implementation:
[LSMT](https://containerd.github.io/overlaybd/#/specs/lsmt.md),
[ZFile](https://containerd.github.io/overlaybd/#/specs/zfile.md).
+ Actually we already see several re-implementations of overlaybd / zfile, such as
+ [AgentEnv](https://github.com/kvcache-ai/AgentENV/tree/main/storage/overlaybd/src).
- **Join the discussion**: For synchronous communication, catch us in the `#overlaybd`
channel on the [CNCF slack](https://cloud-native.slack.com) (cloud-native.slack.com).
Everyone is welcome to join and chat.
[Get an invite to the CNCF slack.](https://communityinviter.com/apps/cloud-native/cncf)
+ DingTalk Group: 186405011387.
# Components
diff --git a/docs/assets/cold_vs_warm_start.png b/docs/assets/cold_vs_warm_start.png
new file mode 100644
index 00000000..71b01461
Binary files /dev/null and b/docs/assets/cold_vs_warm_start.png differ
diff --git a/docs/assets/p2p_distribution.png b/docs/assets/p2p_distribution.png
new file mode 100644
index 00000000..7f9c717e
Binary files /dev/null and b/docs/assets/p2p_distribution.png differ
diff --git a/docs/assets/startup_flow_comparison.png b/docs/assets/startup_flow_comparison.png
new file mode 100644
index 00000000..500ef0c8
Binary files /dev/null and b/docs/assets/startup_flow_comparison.png differ
diff --git a/docs/assets/startup_latency_10k.png b/docs/assets/startup_latency_10k.png
new file mode 100644
index 00000000..8e954a80
Binary files /dev/null and b/docs/assets/startup_latency_10k.png differ
diff --git a/docs/assets/stress_test_10s.png b/docs/assets/stress_test_10s.png
new file mode 100644
index 00000000..070b7f3b
Binary files /dev/null and b/docs/assets/stress_test_10s.png differ
diff --git a/docs/dadi-aliyun-2020-en.md b/docs/dadi-aliyun-2020-en.md
new file mode 100644
index 00000000..0f39c4fb
--- /dev/null
+++ b/docs/dadi-aliyun-2020-en.md
@@ -0,0 +1,53 @@
+# Launching 10,000 Containers in Seconds: Inside Alibaba Cloud's Container Image Acceleration
+
+> Author: Mu Huan | Published: 2020-01-08
+> Source: https://developer.aliyun.com/article/742103
+
+## Introduction
+
+Alibaba Cloud's container and storage teams collaborated to leverage the **DADI accelerator**, enabling on-demand image reading and P2P distribution. The result: **10,000 containers launched in 3.01 seconds**, completely eliminating the minutes-long cold start wait and the network congestion caused by massive parallel image distribution from registries.
+
+## Background and Pain Points
+
+When handling traffic spikes from events like shopping festivals, flash sales, and live streaming, containers must scale up within an extremely short time window.
+
+- **Warm start**: With a local image cache, instantiation is very fast.
+- **Cold start pain**: Without a local image, the full image must be downloaded and decompressed from the registry (constrained by network and disk performance), taking minutes. Large-scale batch cold starts can even render the registry unresponsive due to network congestion.
+- **Data redundancy**: A full container image is often hundreds of MB or even GBs, yet the data actually needed for startup may be a tiny fraction (e.g., a test image of 894MB required only 15MB to start — about 1.6%).
+
+## Test Scenario and Results
+
+Tests were conducted on Alibaba Cloud Container Service for Kubernetes (ACK), using a cluster of **1,000 nodes with 4 cores and 8GB RAM each**.
+
+- **10,000-container launch**: Starting 10,000 containers took only **3.01 seconds** (p999 latency: 2.97s).
+
+
+
+- **Cold vs. warm start**: Warm start took 2.91s (p999: 2.56s). DADI cold start, fetching data on-demand from the P2P network, reduced disk I/O pressure and produced fewer long-tail containers.
+
+
+
+- **Time-limited stress test**: Within a 10-second window, **59,997 containers** were launched across 1,000 hosts (the 60,000th container started at 10.06s).
+
+
+
+## Core Technology: The DADI Accelerator
+
+The DADI accelerator bypasses the traditional "download image → decompress image → start container" pipeline. Its core principle is "on-demand reading," achieved through three key optimizations:
+
+
+
+1. **Image format optimization**: A new image format with a built-in index allows direct access to required data without downloading or decompressing the entire image.
+2. **On-demand P2P data fetching**: A tree-structured P2P network distributes data. A small number of P2P root nodes fetch from the registry, while other host nodes transfer data among themselves, greatly reducing single-point registry load and network congestion.
+
+
+
+3. **Efficient decompression**: A new compression file format enables on-demand decompression of only the data actually accessed, with decompression overhead that is nearly negligible.
+
+**How it works**:
+
+> When launching a container with DADI, only a few KB of image metadata is downloaded from the registry. A virtual device — the **Overlay Block Device** — is created and mounted to the container's working directory. The Docker engine considers the image fully loaded. The actual image data needed at runtime is then fetched on-demand from the local cache or upstream nodes in the P2P network.
+
+## Conclusion
+
+The deep integration of Alibaba Cloud ACK and DADI achieved launching tens of thousands of containers in seconds, gracefully handling large-scale application scaling and deployments. This technology will also serve as a key enabler for **serverless container** startup acceleration in the future.
diff --git a/docs/dadi-aliyun-2020.md b/docs/dadi-aliyun-2020.md
new file mode 100644
index 00000000..b3891526
--- /dev/null
+++ b/docs/dadi-aliyun-2020.md
@@ -0,0 +1,53 @@
+# 秒级启动万个容器,探秘阿里云容器镜像加速黑科技
+
+> 作者:木环 | 发布日期:2020-01-08
+> 来源:https://developer.aliyun.com/article/742103
+
+## 简介
+
+阿里云容器与存储团队展开合作,利用 **DADI加速器** 支持镜像按需读取和P2P分发,实现 **3.01秒启动10000个容器**,完美杜绝容器冷启动的数分钟漫长等待,以及镜像仓库大规模并行分发场景下的网络拥堵。
+
+## 背景与痛点
+
+在应对年货节、秒杀、直播等流量瞬间暴增的业务时,必须在极短时间内扩容容器。
+
+- **热启动**:本地有镜像缓存,实例化时间很短。
+- **冷启动痛点**:本地无镜像时,需从Registry下载并解压完整镜像(受网络和磁盘性能影响),耗时数分钟;大规模批量冷启动甚至会导致Registry因网络拥堵而无法响应。
+- **数据冗余**:完整容器镜像往往高达数百M甚至上G,但启动所需数据可能仅占极小比例(例如测试镜像894M,启动仅需15M,占比约1.6%)。
+
+## 测试场景与数据表现
+
+测试在阿里云容器服务ACK中进行,场景为 **1000台4核8G节点** 组成的Kubernetes集群。
+
+- **万级容器启动**:启动10000个容器仅需 **3.01秒**(p999分位耗时2.97秒)。
+
+
+
+- **冷热启动对比**:热启动耗时2.91秒(p999耗时2.56秒)。DADI冷启动由于数据按需从P2P网络获取,减轻了磁盘IO压力,长尾容器较少。
+
+
+
+- **限时摸高测试**:10秒限制内,利用1000台宿主机启动了 **59997个容器**(10.06秒时第6万容器启动完毕)。
+
+
+
+## 核心黑科技:DADI 加速器
+
+DADI加速器避免了传统"下载镜像 -> 解压镜像 -> 启动容器"的步骤,其核心在于"按需读取",主要包含以下三点优化:
+
+
+
+1. **镜像格式优化**:设计了一种包含索引的新型镜像格式,无需下载和解压完整镜像即可直接访问所需数据。
+2. **按需P2P数据读取**:利用树形P2P网络进行数据分发。少数P2P根节点从Registry获取数据,其他宿主机节点之间相互传输,极大减轻了单点Registry的负载和网络拥堵。
+
+
+
+3. **高效的解压缩算法**:提供新型压缩文件格式,可按需单独解压用户实际访问的数据,解压时间开销几乎可忽略不计。
+
+**运行机制**:
+
+> 利用DADI方案启动容器时,仅从镜像Registry下载几KB的镜像元数据,并创建虚拟设备 **Overlay Block Device** 挂载到容器工作目录上,Docker引擎会认为镜像已经加载完毕。在容器启动时所需的镜像数据则从本地缓存或者P2P网络的上游节点按需下载。
+
+## 总结
+
+此次阿里云ACK和DADI的深度整合,实现了秒级启动万个容器,从容应对大规模应用扩容和发布。相关技术在未来也将成为 **Serverless容器** 的启动加速利器。
diff --git a/docs/index.html b/docs/index.html
index 0d9ddf8a..0cd114f4 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -7,8 +7,9 @@
+
-
+