Given how important performance is these days among SQL Server critical applications, I was excited to look into a new product by SafePeak Technologies (www.SafePeak.com) that aims to immediately resolve, in a plug-and-play way, the performance, scalability and peaks challenges of SQL Server applications on the Cloud, hosting servers and enterprise data centers.
While most SQL Server shops ask me about performance monitoring and alert solutions, to allow them to identify and analyze performance bottlenecks, this unique product actually can resolve them and increase performance in dramatic ways.
SafePeak is a caching proxy that resides between the application and the database. It is unique in the way it requires neither code changes nor database changes. The only change required is routing the application through SafePeak instead of the database.
The benefits of such a solution are obvious: quick integration, immediate ROI, no complex projects and most importantly, minimal downtime for production systems.
As far as I know, this is the only true plug & play caching solution available on the market today and it can provide instant acceleration to any Cloud, hosted or business SQL Server application.
The idea behind SafePeak is that simple – repeatable queries should not be executed against the database, the result sets can be stored in RAM and can be returned immediately, in fractions of a millisecond, without the need to validate the syntax, calculate the execution plan, read IO blocks from the disk and perform data aggregation.
On transactional applications there are many such repeatable queries and SafePeak can reduce the overhead of executing them against the database over and over again.
How Does SafePeak work?
SafePeak’s solution to the performance problem is to store the result sets returned by the database in RAM, as is. When a recurring query or SP execution with the same parameters is passed through SafePeak, it will reply from RAM in a fraction of a millisecond instead of sending the query to the database, thus significantly reducing resources from the database server and the database storage.
In order to achieve this behavior, SafePeak reads and analyzes the TDS protocol (the protocol between the application and the SQL Server), making it transparent to any application working with SQL Server.
Data integrity, reliability and high availability
The main challenge with database caching is to understand in real time when data is no longer valid and should be evicted from the cache. Data can become obsolete for numerous reasons: DML, DDL, executing complex stored procedures, triggers etc.
SafePeak solved this complicated challenge with patent-pending algorithms with three parts: 1) Automatic analysis algorithm of the database schema and creation of a relations graph between all the objects in the database: tables, views, triggers, functions, stored procedures, etc.; 2) A self-adaptive algorithm that studies the application traffic, creates patterns of queries and understands their dependant objects; 3) Real-time analysis of the TDS and the T-SQL queries upon arrival of data modification event, and then flushing or refreshing in real-time the relevant cache items results.
The data on the SQL Server is always up-to-date and the cache items that remain in SafePeak memory are always up to date.
SafePeak’s team made sure to protect the application and database from potential glitches of software and hardware. Basically, in single-mode installation the worst case of any failure the traffic will be sent directly to the database server. In cluster installation, SafePeak second, the passive server takes over (Virtual IP) and becomes the active one.
Installation and configuration
SafePeak Installation is quick and simple, and is completed in few minutes. It requires a different server than the database with Windows 2008 64bit or Windows 2008R2 (VMware, Microsoft Hyper-V or any cloud virtual instance/server are supported as well).
Adding a database instance to SafePeak requires mixed authentication on the database but again, it is simple and takes few seconds. From this point SafePeak analyzes the schema and creates the relations graph, a procedure that takes between seconds to an hour and is a one-time operation. Once this is completed, you are good to go.
The application should be pointed (via connection string or etc\hosts file or a change of DNS record) to the SafePeak server instead of the database. If you have Jobs running on SQL Server using the agent then you may need to define an “alias” to the agent that will route all the jobs via SafePeak (but only if want SafePeak to be aware on any updates they may perform).
From this point SafePeak is in auto-pilot, learns the traffic patterns and does caching of whatever is possible.
There is fine tuning that can be done to improve performance in relation to stored procedures that perform dynamic SQL (inform SafePeak which objects are being accessed) and the same operation is required for CLR and encrypted objects. The application will continue to work without the configuration, but the effectiveness of SafePeak decreases. Basically within one hour the application will be accelerated.
The nice, easy browser-based GUI allows both product management and also provides tools for performance bottlenecks identifications and analysis.
The product provides a structured way to see performance information starting with the instance level all the way through the queries execution.
On each level the product shows the amount read and records the average response time, the cached response time.
Historical information can be viewed using the product reports.
Overall, I am very impressed with SafePeak as a novel product. SafePeak is a great acceleration solution for users who want immediate results for sites with performance, scalability and peak spikes challenges.
While there are specific environments that will clearly benefit from SafePeak, such as SQL Servers with high SELECTivity and read-intensive databases, it is designed for OLTP applications. Such environments that seem to get the most out of SafePeak’s acceleration are E-commerce, Cloud and Hosted apps, large SharePoint and CRM Dynamics implementations, ERP & CRM applications.
SafePeak can significantly increase response times, by reducing network roundtrip to the database, decreasing CPU resource usage, eliminating I/O and storage access
It is simple, plug-and-play, and easily integrates into the current architecture. If you have an important SQL Server website or enterprise application whose performance affects company sales and productivity – then it is definitely worth giving SafePeak a try.
However, while SafePeak works well with SQL Server OLTP apps, it does not play well with OLAP databases. You can still use SafePeak, but you will need to specially configure CLR objects with SafePeak.
You can download a free, fully functional trial here: www.SafePeak.com/download.
Reference: Pinal Dave (http://blog.SQLAuthority.com)