Livemocha is an online language learning site with free courses in over 25 languages and 3 million users worldwide. Livemocha has created an interactive community where people from all over the world can engage and practice with native speakers, resulting in a natural, effective way to learn a foreign language.
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 (Amazon SQS), they use multiple Amazon Compute Cloud (Amazon 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 Amazon 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 Amazon SQS andAmazon SimpleDB, we have made our design and management a lot simpler. We are now working on moving more functionality to leverage Amazon 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 Simple Storage Service (Amazon S3) and Amazon 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 Amazon EC2 and Amazon 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 Amazon EC2 instances 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.”