Simply put, ScaleArc iDB 2.0 is an ingenious product. It can "speak" SQL Server's Tabular Data Stream (TDS) protocol. By placing this software on a server between your application servers and back-end databases, you can easily set up caching rules so that commonly executed queries can be pulled from the proxy server's memory instead of the queries having to go all the way to the back-end server. The caching rules are easily configured and support parameterization, as Figure 1 shows.
With ScaleArc iDB, you can also group multiple synchronized SQL Server databases from different hosts together into a single pooled proxy called a cluster. From that cluster, you can use either round-robin or least-execution-time load balancing to improve application scalability. Better yet, to get your application servers to take advantage of the scalability and caching features, all you have to do is point them at a new IP address or host name (i.e., a proxy address instead of binding them directly against your back-end SQL Server instances).
ScaleArc markets iDB as a load balancing solution for databases (there are versions forand later and MySQL), so it stands to reason that its scalability capabilities get plenty of attention. But, without a doubt, its TDS proxy feature has a lot to offer as well. This feature enables caching, firewalls that protect against SQL injection attacks, high availability, redundancy, and more.
Setup and Testing
You can deploy ScaleArc iDB as software on your own hardware or on any x86-compatible hypervisor (e.g., Microsoft, VMware, or Citrix Systems hypervisor) as a virtual appliance. ScaleArc also offers iDB as a fully configured physical appliance. For testing, I used a virtual appliance, which I first deployed to VMware Workstation 9.0 on my desktop and then pushed out to my VMware vSphere 5.1 host in my lab.
After correcting a couple of dumb user errors I had made when setting up my default gateway on the appliance, I found ScaleArc iDB to be fairly easy to set up. However, it's clear that deployment in a live production environment would necessitate a decent amount of planning and testing. After setting up an iDB cluster, I was able to seamlessly and transparently connect my applications to it. I worked against this cluster without any hitch.
ScaleArc iDB is designed to forward any TDS commands or operations that it doesn't understand or currently support to the back-end servers, so I decided to test this ability. I pointed SQL Server Management Studio (SSMS) at my iDB cluster and ran a host of diagnostics, tricky queries, and advanced operations (e.g., FILESTREAM interactions, Multiple Active Result Sets—MARS). The diagnostics, queries, and operations ran without any problems. When I looked at the information provided by the iDB dashboard, I was able to see that some of my queries were routed to my primary and secondary SQL Server instances—a process that was completely transparent to me. Moreover, I was able to easily and successfully configure caching rules for some of these operations, complete with Time to Live (TTL) thresholds.
Database load balancing requires some form of back-end synchronization between the primary database and the read-only secondary databases. Traditionally, SQL Server has handled this back-end synchronization through replication, but Microsoft introduced another option—AlwaysOn Availability Groups—in SQLServer 2012.
ScaleArc iDB supports SQL Server replication and, at the time of writing, has unveiled support for SQL Server 2012 AlwaysOn Availability Groups. Consequently, any organization looking to use AlwaysOn for scale-out purposes really needs to look into iDB. It's the perfect logical compliment, because you can use ScaleArc iDB clusters for read-only secondary databases. ScaleArc iDB licensing costs are minor compared with the cost of buying additional Enterprise licenses.
Works as Advertised
If you're looking to improve scalability and application responsiveness in your SQL Server environment, ScaleArc iDB is definitely worth a review and even a test drive to see how well it stacks up. For me, ScaleArc iDB worked as advertised.
ScaleArc iDB 2.0