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.
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.
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.