My guess: There was likely a hardware load balancer that distributed the incoming requests to a bank of web servers. Each of these web servers would have the code for the web layer (that builds the html) deployed to each of them. To obtain the data needed for each request, a web layer would add a request to a message queue, basically telling the message queue to inform the web layer when its done fetching the data. This is the easy part.
The complex part would be the database access layer. This will be a bank of servers that consume the items on the message queue and talk to the database servers to fetch the data. The biggest problem is keeping the database servers in sync. In high traffic situations like this, it is not possible without slowing down. So, instead of expecting the databases to be in sync, they would've used logic in the db access layer to track user sessions and to select the appropriate db server that's being used for this session. Thats a high level abstraction. They likely had many message queues for each kind of activity eg, 1 for fetching the stock status, one for fetching user's cart info, maybe even one for building the html from all the data obtained and then send the final html (or json or xml depending on the nature of the request) as response. I should've probably named the 'web layer' as the orchestrator!! Its like the 'controller' in a Rails app. Though I'm not on the devops side, I think 4500 servers is a medium sized service! I might be wrong here. Some in devops could probably throw more light on the 'magnitude' of the operations in comparison to others! Cheers, mano On Tue, Oct 21, 2014 at 10:54 AM, sahil साहिल <[email protected]> wrote: > Namaste Everyone, > > As we all know about Flipkart's BigBillionDay sale and its consequences. > Last night, I was checking this link > <http://cio.economictimes.indiatimes.com/news/information-technology-case-study/the-tech-story-behind-flipkarts-big-billion-sale/44797175> > and > came to know that Flipkart deployed 4500 servers for the D-Day. > > Now, can you guys explain me how was that possible? Does it mean that they > put their web code on 4500 servers? Is it really possible? If yes then how > or was there only single web code which was handling all requests? > > But, I really appreciate Flipkart for taking up the initiative to handle or > organize such event. It was difficult for a Indian company to handle a > large pool of requests. Flipkart started a new chapter on web scalability. > #LessonLearnt (in technical way) > > What are the factors which one should concern or pay attention while > focusing on such event regarding scalability or technical glitches? How can > we bring consistency to our web application like Google, FB, Twitter does > (they are handling zillion requests per second)? > > I am not a web guy so curious to know about these questions. I was in > dilemma that how can I search this question on Google unless I would have > done that part before disturbing you all. BTW, there was a question on Quora > <https://www.quora.com/What-is-Flipkarts-Big-Billion-Day-Sales-Are-they-cheating-people-in-the-name-of-Big-Billion-Day-sales> > but they were discussing something else regarding the BigBillionDay sale. > #I didn't read all the quora answers. > > May be I am asking this question out of lack of experience or ignorance > because I have not worked for any organization so far or not up to such a > large level where I got a chance to work on such a big project. Please > ignore my innocence for asking this question even if it sounds silly. I > hope WEB guys can guide me as well as others on this issue much better. > > Look forward to hearing from you soon. > > Thanks. > > -- > > *Regards,Sahil ModGill* > _______________________________________________ > ILUGC Mailing List: > http://www.ae.iitm.ac.in/mailman/listinfo/ilugc > ILUGC Mailing List Guidelines: > http://ilugc.in/mailinglist-guidelines -- Computers are useless. They can only give you answers. ~ Pablo Picasso _______________________________________________ ILUGC Mailing List: http://www.ae.iitm.ac.in/mailman/listinfo/ilugc ILUGC Mailing List Guidelines: http://ilugc.in/mailinglist-guidelines
