80 likes | 376 Views
A Highly Reliable Fault-tolerant Airline Reservation System. Zoheb Sait (zs29) Sandeep Varma (sv83). Software. Platform:ASP.NET Programming Languages:C# & VB Database Server:MS SQL Server 2000 Group Communication System:Spread. Architecture. Prototype used: Two Web Servers
E N D
A Highly Reliable Fault-tolerant Airline Reservation System Zoheb Sait (zs29) Sandeep Varma (sv83)
Software • Platform:ASP.NET • Programming Languages:C# & VB • Database Server:MS SQL Server 2000 • Group Communication System:Spread
Architecture Prototype used: • Two Web Servers • Two Database Servers • Single Load Balancer • -- Easily Scaleable
Failover • Database level: • Reads from any database server • Synchronous writes to all database servers through Spread • Transparent Failover • Auto-Reconfiguration and synchronization into group on recovery • Application Server level: • Load Balancer maintains list of available web servers • LB does transparent redirect of offline web server load to available web servers
Processes • The database replication is provided by a process named ‘SpreadListener’ a daemon which runs as a windows service • ‘HeartBeatMonitor’ provides transparent fail-over to available database servers • ‘Load Balancer’ distributes clients requests in round-robin manner, and provides transparent web server fail-over
Performance Tests Test: 500 users connecting in intervals of 2 sec in 5 users batch at a time Case 1: Replication Disabled v/s Enabled • Average Response time was 74ms with replication enabled • Average response time was 51ms with replication disabled
Performance Tests Case 2: LB and Replication v/s No LB and Repl • Average Response time was 51ms with load balancing and replication disabled • Average Response time dropped to 19ms with load balancing and replication.
Application Stress Test • With replication disabled: • ~200 errors • With replication enabled: • ~400 errors • Maximum number of concurrent transactions without failure: • ~ 60 transactions/per sec without a load balancer • ~ 90 concurrent transactions per/sec with a load balancer