DOAR
收藏资源简介:
# DOAR: [](LICENSE) []() [](https://goreportcard.com/report/github.com/username/doar) []() **DOAR** is a high-performance container image builder designed for **Cloud-Native HPC** and **AI/ML workflows**. Unlike traditional builders (e.g., Docker, BuildKit) that rely on coarse-grained instruction strings for caching, DOAR leverages **eBPF** to track file access at the kernel level. This enables **fine-grained deduplication** and **parallel building**, significantly reducing redundancy in data-intensive image construction. --- ## 🌟 Key Features * **⚡ Fine-Grained Caching**: Identifies dependencies based on *accessed files* rather than *instruction text*. Modifying a comment or a non-critical file no longer invalidates the cache for massive layers. * **🧠 eBPF-Powered Tracing**: Uses extended Berkeley Packet Filter (eBPF) to transparently intercept `sys_open`, `sys_read`, and `sys_execve` calls during the build process with minimal overhead (<1%). * **🏎️ Parallel Execution**: Automatically analyzes the dependency graph of build instructions and executes independent steps in parallel, leveraging multi-core HPC nodes. * **🐘 Optimized for Heavy Workloads**: specifically tuned for multi-gigabyte images such as **PyTorch**, **TensorFlow**, **OpenFOAM**, and **GROMACS**. * **✅ Bit-Level Correctness**: Guarantees identical binary output to standard Docker builds, verified by SHA-256 checksums and comprehensive unit tests. --- ## 📊 Performance at a Glance DOAR has been evaluated against state-of-the-art builders (Docker, BuildKit, Kaniko) using real-world workloads: | Workload | Category | Image Size | Speedup | Storage Saving | | :--- | :--- | :--- | :--- | :--- | | **PyTorch** | AI Training | ~1.2 GB | **3.8x** | **68%** | | **Flink** | Big Data | 350 MB | **2.5x** | **34%** | | **OpenFOAM** | CFD | 3.6 GB | **3.1x** | **52%** | *See the `evaluation/` directory for detailed reproduction scripts.* --- ## 🛠️ Architecture DOAR consists of two main components: 1. **Userspace Builder (Go)**: Parses the Dockerfile, constructs the DAG (Directed Acyclic Graph), and manages the build cache. 2. **Kernel Tracer (C/eBPF)**: Hooks into kernel tracepoints to record the exact "Verify Set" (read files) and "Modify Set" (written files) for each instruction. ```mermaid graph TD A[Dockerfile] -->|Parse| B(Dependency DAG) B --> C{Scheduler} C -->|Exec Instruction| D[Container Runtime] D -.->|Trace I/O| E[eBPF Monitor] E -.->|Report Accessed Files| C C -->|Deduplicate & Commit| F[Image Layer]



