With over 1.5 million visitors per month, livemocha.com’s web traffic has been growing at a rapid rate. To track and manage user activity, the livemocha engineering team designed their site architecture to generate feed items for user actions. Soon after launching, Livemocha was generating over 3 million feed items per day and started experiencing performance degradation. The biggest bottlenecks were occurring with their relational database management system (RDBMS), specifically the management and administration of the system. It became a full time job managing schema modifications, performance indexes, asynchronous inserts, replication, deletion, and writing scripts.
“We were at a crossroad and had to look for a solution that would let us store, process and query data sets easily and performed well for large datasets,” says Krishnan Seshadrinathan VP Engineering at Livemocha. “We investigated non-RDBMS stores and chose Amazon SimpleDB because it met our performance goals, supports large data sets, is “schemaless”, and can be scaled on demand.”
As the team migrated over to SimpleDB, they found it beneficial to utilize multiple services from Amazon Web Services. They record user events in Amazon Simple Queue Service (SQS), they use multiple EC2 instances to process these events, and store and generate appropriate feed items in SimpleDB. These feed items are now securely stored and can easily scale with future growth.
“By migrating to SimpleDB, we have lowered resource costs by more than $10,000 per month,” recalls Krishnan. “Our results have been great and it has significantly reduced the complexity in managing and administering this data. In addition, it has eliminated the complex sql deletion tasks running everyday on our production system which caused a fair amount of unwanted load. By leveraging SQS and SimpleDB, we have made our design and management a lot simpler. We are now working on moving more functionality to leverage SimpleDB and AWS.”
In addition to managing large user feed data sets, Livemocha has a growing repository of images, audio, and video. “We use Amazon S3 and CloudFront for all our media files – allowing us to scale our storage on demand easily and further control our database size growth.” Livemocha also uses AWS compute power. “We also use EC2 and S3 to process and generate lesson videos. This is an intensive process and generating each lesson takes hours. By scaling up and down the number of EC2 resources for brief periods we are able to complete the generation process in a short time,” recalls Krishnan.
All in all, Livemocha has found AWS infrastructure building block services as critical to their ongoing success. Krishnan states, “By leveraging the AWS platform, we have been able to reduce our system management costs and focus on our core business.”
Learn more about Livemocha at http://www.livemocha.com