Microsoft researchers have introduced Garnet, a versatile and highly performant cache-store system designed to support the rapidly evolving needs of modern applications. Traditional cache-stores have struggled to keep pace with the increasing complexity and demands of interactive web applications, driving the creation of this new, open-source solution.
As opposed to its predecessor, Garnet handles not only simple data types such as hash and sorted sets, but also more complex types like raw strings. Its inclusivity translates into exceptional adaptability and powerful performance due to its architecture, designed to harness the full potential of current cutting-edge hardware and deliver peak performance on diverse platforms and operating systems. Moreover, the key features that set Garnet apart are its remarkable throughput and scalability, which are critical for supporting large-scale services.
The use of modern tech such as the .NET framework in its optimization equips Garnet for high productivity while maintaining cross-platform compatibility and extensibility. Consequently, developers have an innovative tool to integrate into their projects, propelling them towards their goals.
Garnet has undergone extensive testing, where its performance surpassed popular open-source cache-store systems like Redis, KeyDB, Dragonfly, setting new benchmarks in throughput and latency parameters.
Key aspects of Garnet’s architecture include innovative network and storage layers, designed for maximum efficiency and leveraging quick network protocols and shared memory structure. These features reduce overhead while enhancing throughput for unparalleled performance.
Garnet’s cluster mode introduces a novel approach to cache-store deployment, simplifying the setup and maintenance of replicated and sharded deployments. Using dynamic key migration techniques and common Redis cluster commands, Garnet enables easy deployment scaling, guaranteeing smooth operations across contexts.
Garnet has three primary features. Firstly, its ground-breaking design provides high performance through cache-friendly shared-memory scalability using a thread-scalable storage layer called Tsavorite. Secondly, it offers rich extensibility while supporting a significant portion of the Redis API surface, hence accommodating varying application needs. Finally, it’s a modern and secure offering, built with .NET C#, guaranteeing performance and interoperability across several operating systems while incorporating garbage collection minimisation and effective TLS support.
Garnet’s goal is to offer high performance, flexibility, and modern security to developers to help them create more efficient, dynamic applications.