A nightmare of every Indian !!! Booking ticket online using irctc.co.in. Because of poor infrastructure, you would face all types of issues from session timeout, payment gateway timeout, amount getting debited without a ticket to page not loading at all. If you face any of these issues, you need to login all over again. During holiday seasons, tickets are sold out in few minutes. The issue is even bad for Tatkal(Urgent) tickets. (Regular tickets can be booked from 4 months in advance and tatkal tickets 1 day in advance.)
But then being the sole online ticket provider to one of the busiest and complex rail networks in the world is no child’s play. Overall Indian Railways sell 21 million tickets on an average every day. 250 million tickets are booked via IRCTC per annum. So, when booking window opens at 8.00 AM there is a mad rush for tickets both online as well as in Railway reservation counters both vying for database resources. Railway counters book from a separate system which is directly connected to the back-end infrastructure and hence would not face the issue faced by online users.
Adding to issues caused by the magnitude of people vying for tickets, the railways have made the system a bit more complex.
1) The traveler can decide which berth he wants. This results in a row-level locks with thousands of transactions vying for that resulting in the database being overloaded.
2) I have also read somewhere that when women travel alone there is an algorithm that ensures that these women get a berth near other women travelers so that she does not have to travel amidst men.
3) Also, there is some quota system in reservation.
And probably many more.
SAP HANA, I feel, is made for such situations. With in-memory computing capabilities and ability to execute complex logic these issues would be solved easily.
HANA hardware will take care of the scale of transactions happening; we only need to ensure that the web app is available all times. I have heard with SP05 you can create and deploy web app from HANA itself.
For selection of berth, we just need to skim through the berth column for the preferred berth rather than search the entire rows.
We can write logic using SQL script and R – prog and use columnar based approach to handle the three points listed above. Consider this in current scenario, on logging in, several calls are made to the database. Calls are made to retrieve train code, station codes, fill in passenger details, search availability, etc. HANA can do all these in parallel.
So what do you think? If this is viable, I hope SAP LABS Bangalore try to make a pitch to the railway ministry. 🙂
EDIT: More good examples are provided here.