| Introduction |
| ============ |
| |
| |
| Apache Crail (Incubating) is a fast multi-tiered distributed storage system designed from ground up for high-performance network and storage hardware. The unique features of Crail include: |
| |
| * Zero-copy network access from userspace |
| * Integration of multiple storage tiers such DRAM, flash and disaggregated shared storage |
| * Ultra-low latencies for both meta data and data operations. For instance: opening, reading and closing a small file residing in the distributed DRAM tier less than 10 microseconds, which is in the same ballpark as some of the fastest RDMA-based key/value stores |
| * High-performance sequential read/write operations: For instance: read operations on large files residing in the distributed DRAM tier are typically limited only by the performance of the network |
| * Very low CPU consumption: a single core sharing both application and file system client can drive sequential read/write operations at the speed of up to 100Gbps and more |
| * Asynchronous API leveraging the asynchronous nature of RDMA-based networking hardware |
| * Extensible plugin architecture: new storage tiers tailored to specific hardware can be added easily |
| |
| Crail is implemented in Java offering a Java API which integrates directly with the Java off-heap memory. Crail is designed for performance critical temporary data within a scope of a rack or two. |