One of the main causes of slow application performance is inefficient interaction between the application and database. Today, developers spend precious resources on building home grown solutions to optimize SQL performance. For IT organizations, they are dependent on the third-party application vendor to improve performance.
Heimdall Data, a Microsoft Partner, offers a database proxy in the Azure Marketplace that delivers features like Query caching, Read/write splitting, and Connection Pooling which help solve challenges like,
Using the Heimdall proxy, developers and DBAs can
- Improve SQL performance and reliability without code changes: 1) Query caching, 2) Query routing, 3) Connection Pooling, and 4) Automated failover
- Easily deploy Heimdall as a side-car process. Just route the application to the database proxy and turn on features from the Heimdall Central Console.
You can use Heimdall for any of the relational databases in Azure especially Azure database for PostgreSQL and Azure Database for MySQL.
Figure 2: Heimdall Centralized 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 Azure for Redis as a look-aside SQL cache. We automate caching and invalidation without manual TTL expiry configurations. Additionally, the user is given the option to include or exclude cache policies. Heimdall ensures the cached data is synchronized, keeping data fresh.
Learn more: Automated Query Caching for Azure Managed Databases; No Code Changes
Figure 3: Read/Write Split Architecture
Read/Write Split: To horizontally scale the database tier, write servers and read servers are separated out so that write queries go to dedicated instance(s) for processing. However, the “splitting” of queries requires code changes. Heimdall Data is SQL aware and routes queries to the appropriate database instances. This is all configured as policy rules on the Heimdall Data Central Console.
Learn more: Improve Read Replication Utilization for Azure Managed Databases
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 establishing as many connections to the backend as there are concurrent queries. Heimdall reduces overhead by sending only active connections to the database. This includes long-lived, persistent connections for faster database access.
Automated Failover: Heimdall offers an alternative for SQL databases in Azure: 1) PgBouncer for Postgres, and faster failover for SQL Server AlwaysOn. 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.
Figure 4: SQL Analytics on Heimdall Central Console
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.
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.
Download a trial version in the Azure Marketplace.