Small File Optimization

Memory Object Storage for High Performance

Memory Object Storage for High Performance

Use server DRAM for distributed shared memory pools for workloads requiring massive IOPS and throughput performance.

Background

Small file optimization improves IOPS and throughput. In modern architectures, this is critical for AI/ML workloads. Without caching, I/O can become a bottleneck for GPUs.

Caching accelerates access to training, validation, and test datasets.

Features

Dedicated Object Cache

RustFS small file optimization is designed for caching file objects. If an object is not found in the cache, RustFS retrieves it, caches it for future requests, and returns it to the caller.

Consistent Hashing

RustFS uses consistent hashing algorithms to distribute cached object data across a cluster of cache nodes. Consistent hashing ensures objects can be easily found based on the object's key. This creates a one-to-one relationship between the object's key and the node holding the cached object. It ensures balanced data distribution and minimizes reshuffling when nodes are added or removed.

Rolling Cache

RustFS uses rolling cache for memory management. It keeps the total cache size within specified limits. If adding new objects would exceed the limit, objects are removed based on timestamps (LRU).

Automatic Version Updates

RustFS automatically updates the cache with new object versions when they are updated in storage.

Seamless API Integration

Small file optimization is a seamlessly integrated extension of RustFS. Developers use the same APIs. If the requested object is in cache, RustFS fetches it from cache. If not, it fetches from storage and caches it.

On this page