Caching improves application response times and reduces in database licensing costs. However, caching is complex. Because it requires manual configuration (i.e., what to cache and invalidate), it is resource-intensive and adds risk. This article explains how Heimdall Data auto-caches with zero disruption to your current infrastructure.
● Studies have shown a 20% improvement in page-load time and a 20% increase in conversion rates
● Improved application performance and response times
● Reduced database licensing costs
● Increased horizontal database scaling
What should I cache?
When implementing caching, there is a typical checklist:
● What is safe to cache?
● Will caching give me a performance benefit?
● How can I maintain cache freshness?
Cacheability depends on the freshness and synchronization. What are the guarantees that a write made on one node will be updated on another node immediately? Without such guarantees, caching is risky and will likely break an application. A caching solution needs to adjust to changing traffic for optimal performance.
While SQL Server has basic caching (e.g., query plan and buffer pool cache), it does not solve network latency as queries still hit the database and incur the round trip penalty back to the application server.
Some deploy additional caches on the application side such as Redis, Amazon ElastiCache or Hazelcast: These are SQL caches in front of the database designed to improve application performance while offloading database processing. They lower the memory pressure on the buffer pool and improve the efficiency of queries that are processed by the database server.
Application-level caching, however, is manual and prone to errors. Application owners still need to determine what to cache and what to invalidate, frequently monitoring the changes in data patterns and adjusting accordingly. What if there was a solution that automated caching?
Auto-Caching with Heimdall Data
Engineering teams spend up to 20% of their resources on building and maintaining a cache subsystem. This operational expense can be avoided with with Heimdall Data’s caching solution:
● Intelligently auto-caches, requiring no changes to the application or SQL Server
● Our machine learning algorithms will cache only if there is a performance benefit and automatically invalidates
● Intelligently caches in two tiers:
- Cache of your choice (e.g., Amazon ElastiCache, Redis)
Figure 1: Heimdall Data Caching Architecture
Heimdall Data is a software agent that works with any application, including third-party applications, as no code changes are required. Just change your networking settings to connect the application to the Heimdall Data proxy, which connects to the database on its behalf.
Today’s caching solutions lack invalidation logic beyond TTL or require complex configurations. It is a risky, time-consuming, manual process. Heimdall intelligently caches and invalidates taking the risk and guesswork out. Let’s show you how:
When configuring the application to use the Heimdall SQL Server proxy, there were no changes to the application besides the database URL/host+port change – no coding or database system changes were required.
Results: The dashboard below displays query traffic and server performance.
● Notice the average query time for traffic coming from the cache is 50 microseconds, compared to 1,000 microseconds from the database. By deploying caching in this application, there is a data layer performance boost of over 20 times!
● Other statistics include the cache hit rate and query traffic for each server. With a 90% cache hit rate, the load on the database is reduced significantly, allowing for more users to be supported on the same database infrastructure.
Heimdall Data automates caching for SQL Server. Users will experience performance improvement in scale while reducing the need to purchase additional SQL Server licenses. Less load to the database translates to less SQL Server instances. Heimdall is available as a free trial downloaded at our Heimdall Data website.
Resources and Links
Erik Brandsberg is CTO at Heimdall Data. He specializes in application-networking technologies for web and backend data. Whether it's coding, testing or installing, he has been involved. His diverse experience at Alteon, Citrix, and Juniper Networks gave him a solid understanding of operational complexities in a modern infrastructure, which led to the founding of Heimdall Data.