Our 5-minute guide to distributed caching
Today's web, mobile and IoT applications need to operate at web scale, anticipating millions of users, terabytes of data and submillisecond response times, as well as operating on multiple devices around the world.
Distributed caching solves many common problems with data access, improving performance, manageability and scalability, but what is it and how can it benefit businesses?
What is distributed caching?
Caching has become the de facto technology to boost application performance as well as reduce costs. The primary goal of caching is to alleviate bottlenecks that come with traditional databases. By caching frequently used data in memory - rather than making database round trips - application response times can be dramatically improved.
Distributed caching is simply an extension of this concept, but the cache is configured to span multiple servers. It's commonly used in cloud computing and virtualised environments, where different servers give a portion of their cache memory into a pool which can then be accessed by virtual machines. This also means it's a much more scalable option.
Download nowThe data stored in a distributed cache is quite simply whatever is accessed the most, and can change over time if a piece of data hasn't been requested in a while.Distributed caching can also substantially lower capital and operating costs by reducing workloads on backend systems and reducing network usage. In particular, if the application runs on a relational database such as Oracle, which requires high-end, costly hardware in order to scale, distributed caching that runs on low-cost commodity servers can reduce the need to add expensive resources.Common distributed caching use casesDue to clear performance and cost benefits, distributed caching is used across numerous applications. Common use cases include:Speeding up RDBMS: Many web and mobile applications need to access data from a backend relational database management system (RDBMS) - for example, inventory data for an online product catalogue. However, relational systems were not designed to operate at internet scale and can be easily overwhelmed by the volume of requests from web and mobile applications. Caching data from the RDBMS in memory is a widely used, cost-effective technique to speed up the backend RDBMS. See related Three keys to successful data management Managing usage spikes: Web and mobile applications often experience spikes in usage. In these cases, caching can prevent the application from being overwhelmed and can help avoid the need to add expensive backend resources.Mainframe offloading: Mainframes are still used widely in many industries. A cache is used to offload workloads from a backend mainframe, thereby reducing costs as well as enabling completely new services that wouldn't be possible using just the mainframe.Web session store: Session data and web history are kept in memory - for example, as inputs to a shopping cart or real-time recommendation engine on an ecommerce site, or player history in a game.What makes distributed caching effective?The requirements for effective distributed caching are fairly straightforward. Enterprises generally factor six key criteria into their evaluation, but how important they are depends on the specific situation.Performance: Specific performance requirements are driven by the underlying application. For a given workload, the cache must meet and sustain the application's required steady-state performance targets for latency and throughput. Efficiency of performance is a related factor that impacts cost, complexity and manageability.Scalability: As the workload increases, the cache must continue to deliver the same performance. The cache must be able to scale linearly, easily, affordably and without adversely impacting application performance and availability.Availability: Data needs to always be available during both planned and unplanned interruptions, so the cache must ensure availability of data 24/7.'High Performance with Distributed Caching' explores why distributed caching is key to delivering highly responsive user experiences. Download it here.
Manageability: The use of a cache should not place undue burden on the operations team. It should be reasonably quick to deploy and easy to monitor and manage.
Simplicity: Adding a cache to a deployment should not introduce unnecessary complexity, or make more work for developers.
Affordability: Cost is always a consideration with any IT decision, both upfront implementation as well as ongoing costs. An evaluation should consider total cost of ownership, including license fees as well as hardware, services, maintenance and support.
Main image credit: Bigstock