Create An In-Memory Object Store for Ultra High Performance Workloads

Leverage your server DRAM to create a distributed, shared pool of memory for workloads that demand massive IOPS and throughput performance.

MinIO's Enterprise Cache is a caching service that uses a distributed, shared pool of memory to cache frequently accessed objects. Enterprise Cache is transparent to the application layer once enabled and configured and is seamless to operate. Further, the MinIO implementation retains full data persistence.

Context

MinIO is ideal for workloads that require both IOPS and throughput performance. In modern architectures that increasingly means AI/ML workloads. In the absence of Cache, I/O can be the bottleneck for the GPUs. Using the Enterprise Cache, a bucket that contains training, validation, and testing data sets can be held in memory to provide the speed and throughput needed for GPU-based model training.

Features

Features

MinIO Cache differentiates itself from generic caching services in that it has knowledge about the data source - which is MinIO Object Storage.

Purpose-built

MinIO Cache is purpose-built to cache MinIO objects. If an object cannot be found in its existing cache of objects, then it will automatically retrieve the object, cache it for future requests, and return the object to the caller.

Automatic updates

Automatic updates for new object versions. If a cached object is updated, then MinIO Object Storage automatically updates the cache with the new object version.

Consistent Hashing algorithm

MinIO Cache uses the Consistent Hashing algorithm for spreading out cached object data across a cluster of cache nodes (known as Peers). Consistent Hashing makes sure objects can be easily located based on their key. This results in a one-to-one relationship between the object’s key value and the node that holds the cached object. It also ensures that nodes contain the same amount of data so that one does not get overloaded while others are idle. More importantly, however, it spreads objects out in such a way that if a node is added or removed, there is minimal shuffling to get the system aligned.

Behind-the-scenes extension

Cache is a behind-the-scenes extension of MinIO. Because Cache is an extension of MinIO, developers do not need to learn a new API. Developers use the same APIs that have been using. If a requested object is in the cache, then MinIO will automatically fetch it from the cache. If an object is supposed to be the cache and it is being requested for the first time, then MinIO will fetch it from object storage, return it to the caller, and place it in the cache for subsequent requests.

Rolling Cache for memory management

Rolling Cache for memory management. MinIO Cache uses a rolling cache to keep the total size of the cache within the limits specified in MinIO Cache’s configuration. If adding a new object will cause the cache size to exceed the specified limit, then one or more objects will be removed based on a timestamp that indicates the last time the object was requested.

MinIO's Enterprise Cache FAQs

Learn more about MinIO's Enterprise Cache

Ask an Expert

Speak Immediately to an Engineer at MinIO About Your Cache Questions

Send Us An Email by Completing the Form Below

We will be in touch within the hour.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

You are using Internet Explorer version 11 or lower. Due to security issues and lack of support for web standards, it is highly recommended that you upgrade to a modern browser.