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.
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.
MinIO Cache differentiates itself from generic caching services in that it has knowledge about the data
source - which is MinIO Object Storage.
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 for new object versions. If a cached object is updated, then MinIO Object Storage automatically updates the cache with the new object version.
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.
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. 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.
Speak Immediately to an Engineer at MinIO About Your Cache Questions
We will be in touch within the hour.