One of the main causes of slow application performance is the inefficient SQL interaction between the application and database. Today, costly in-house resources are spent on developing a data access layer. For IT organizationsyouoften have several constraints: 1) project priority conflicts and 2) third-party applications cannot be changed. Yet these applications need increased scale.
Heimdall Data, a Microsoft Partner, offers a database proxy in the Azure Marketplacefor developers and DBAs toimprove SQL performance and reliabilitywithoutapplication changes.Notable features include:
Read/write splitting with replication lag detection
Automated database failover
The Heimdall proxy supports any relational database in Azure and is deployedas a side-car process. Just route the application to the proxy and turn on features from the Heimdall Central Console. From the Azure Marketplace, we support a proxy tier architecture.
Figure 2: Heimdall Proxy Tier Architecture
Query Caching: Caching introduces complexity and risk as it requires modifying the application. The Heimdall’s proxy is scalable and safe. Our caching logic determines which queries to cache into the cache of your choice (e.g. local heap, Redis). We automate cache invalidations without manual TTL expiry configurations. You arealsoisgiventhe option to include or exclude cache policies. Our proxy ensures the cache instancesare synchronized, keeping data fresh. To learn more, go toAutomated Query Caching without application changes
Figure 3: Query Routing Architecture
Read/Write Splitting: To scale an application’s database capacity, database clusters are often divided into writeable primaryand read replicas. This requires the application to be aware of the different servers and roles and requires code changes. The Heimdall proxyis SQL aware and routes queriestotheappropriate databaseinstance accounting for replication lag and transactional state. This is all configured as policy rules on the Heimdall Data Central Console. For more details, check out our read/write split blog.
Connection Pooling:When idle connections are established, they consume unnecessary hardware resources, eventually slowing down performance. Heimdall’s connection pooling and multiplexing optimize connections by establishingonly as many connections to the backend as there are concurrent queries.What makes our proxy unique is the level of control: Operators can limit connections on both a per-user and aggregate level.
Automated Failover: When the Heimdall Data proxy detects a database failover, the Heimdall proxy queues the front-end connection and transparently fails over to the designated standby instance. This greatly reduces application errors and database exceptions.
SQL Analytics: On the Heimdall Data Central Console, we provide client-side and server-side performance metrics. This includes the cache hit rate, database processing time, overall response time and query extraction plan. This allows users to identify performance bottlenecks whether it be in the application, database, or network.
Figure 3: SQL Analytics on Heimdall Central Console
The Heimdall architecture was designed for ease of deployment in Azure without the need to modify the application or database. Developers can improve query read/write performance without modifying a single line of code.