01. Problem
A travel search engine for a major hotel bookings aggregator company in the UK. Complete system redesign from a database-oriented processing based on a cluster of dozens SQL Server machines that was no scaling horizontally any longer due to architecture limitations. Most of the queries are read only (99%), about 200 million queries daily.
The main issue was caused by reaching the scalability limits – no further options to scale vertically with very limited horizontal scaling – adding a new SQL Server machine was increasing infrastructure cost by 2% and system throughput by only 0.1%.
Technical limitations started to become a serious business scaling issue – adding more clients and more hotel data became cost inefficient.
02. Solution
We studied the detailed system usage scenarios and statistics with the client and decided to extract the availability search into a separate cache layer based on in-memory data grid (IMDG) platform. This new solution holds in memory a complete set of data required to return a hotel availability information. We also implemented a custom, fast data loading mechanism to populate the memory grid from database as well as a message queue pipeline supporting incremental intraday data updates.
03. Results
Significant reduction of persistent database usage (SQL Server) and infrastructure cost down by 80%. Almost linear horizontal scalability of the search engine which is now based on in-memory processing with efficiency around 70%.
New business opportunities to scale the platform. After the first years of our solution in use the system was able to handle 50% greater traffic (over 300 million queries daily) with significant reduction of response times by 60%. More than 95% of queries are now served below a second.
The most surprising was the immediate commercial effect of the new implementation – revenue from the existing customers grew as they were now able to query the platform more frequently generating higher volumes.