Toll Free: 1800-258-8000

Case Study: Where-to-Buy.in (A leading shopping search engine in India)

www.Where-to-Buy.in

Where-to-Buy.in is a leading shopping search engine in India with cores of product indexed on daily basis. It is a challenging project due to the fact that, it process millions of records and 100s of databases to serve a single request. It is rated as one of the top websites for online e-commerce.

 

Business Challenge:

  • The homepage of Where-to-Buy needs to be loaded within 2 seconds and recurrent visit should load within 0.60 seconds.
  • Any search query to be answered with-in 1 to 1.5 seconds by searching millions of records.
  • The database should be replicated between various nodes to respond to their queries quickly.
  • The system should be able to support around 100 million queries per day. A load balancing server to split the load between variable numbers of servers based on the number of cloud instances

 

Solution:

The challenge was assigned to the Web Optimization & Server Performance Improvement Team in Hosting Raja.

 

HostingRaja Cloud Optimization team approached this challenge in a “divide & conquer” method. With previous hosting company, the whole setup was running on two expensive dedicated server which cost more than all these cloud instances could cost altogether. A load balancer and firewall cloud instances was first established. The load balancer smartly re-route the traffic between the processing servers.

 

Steps Taken by Web Optimization Team Experts

  • Load Balancer Setup
  • Cost Effective Method
  • Database Optimization
  • More Application / Processing Servers
  • Load Balancer & Firewall Setup
  • Indian Customers – USA data center

 

Indian Customers – USA data center

Initially where-to-buy was running on 2 high configuration-Expensive dedicated servers from another hosting company from USA and it was costing a huge sum. One server was used as a Web Server and another one server was used as a DB server. Our optimization team felt that, it is a clear waste of resources & money. So we came up with, a new architecture to reduce the cost and to improve the performance of the server. As per the new architecture we have split the work load among various cloud instances and each one performing a specific task and the each cloud instance was fine tuned to perform each task in a better way. For example, initially it was running under apache server, we moved all the apache servers into Nginx server and we did the required optimization to serve 1000s of users per second. Doing optimization on the server side is just half the job done and we did extensive optimization on web server & we made use of all the possible HTTP header to serve more number of customers, Like cache, Expire, …

 

Cost Effective Approach

Based on the customer’s request, we came up with a cost effective system with improved performance. Based on the processing load average of the system we setup the system in such a way that it made use of the loadbalancer and firewall server to handle some of the request when there is a sudden spike in the traffic along with Website Administrator cloud server.

 

Database Optimization

Database is the trickiest part of the whole web application optimization part; because it really needs utmost care when doing the system setup, any mess up in the database setup can give many sleepless nights to the web /server administrator due the complexity of the database system. The database was initially running in a huge dedicated database server, which was not optimized to give better results. Now we have made two instances of hostingraja cloud server to run the database so that the load can be shared between two database servers. Initially millions of records in the where to buy server was handled by few database in the MySql and it required few fine tuning at source code level. We have made changes to the database schema in such way that, the millions of records are divided into more than 40 database so that, whenever there is a need required to serve a query it can read from multiple databases faster. Read Vs Write Intensive Databases. Whenever there is a write in any database/table it sometime affects the read functionalities so we came up with recommendations to the where to buy to do minor coding changes in such a way that, We have separated the write intensive & read intensive databases separately.

 

Indian Customers – USA data center

One of the major mistakes done by most of the Indian web startup owners are that, they keep their datacenters in USA or Canada for Indian customers. As the picture suggests below, Most of the delay in web site loading is introduced by the latency in the Internet due to the long distances. The further you have your datacenter the more delay it adds to the system. Example, if your site loads 2 to 3 seconds from Indian data center, it might take around 4 to 5 seconds to load from USA datacenter. The simplest approach is to have your data center where your clients are.