MyYearbook.com uses an application that generates heavy database processing demands as traffic builds. To meet that demand, it's implemented McObject's eXtremeDB database, an in-memory system, to meet the high performance needs of the social networking site.
For example, one application on the MyYearbook.com site is a BlindDate system that allows participants to supply questions about themselves with their preferred answers. MyYearbook presents a description of the person along with a questionnaire that has three choices for each answer. To be matched up with the question's supplier, a person needs to answer the questions in the way the submitter prefers.
"We give you three choices to answer a question about another person. If your answer is deemed compatible, we match you up," said Jonah Harris, a senior database administrator who supervises use of the special matching algorithm and application on the site.
Most participants like to submit a lot of questions about themselves and their favorite foods, pets, and music in hopes of weeding out unwanted attention and finding someone with a similar outlook, lifestyle, and pattern of thinking about the world, said Harris in an interview. Two hundred is usually the minimum number of questions submitted, but 2,000 isn't uncommon. In one case, a BlindDate participant submitted 8,000 questions. To match up that many answers with those of someone seeking a blind date is a tough assignment for the standard relational database system.
Harris tested a relational system with that task and it took 800 milliseconds, or nearly a second, to complete. He timed it with eXtremeDB, an in-memory, object-oriented database system, and it took 76 microseconds, or 76 millionths of a second. In both cases the database and application were running on the same four-CPU server, each CPU containing four cores; it also used 128 GB of random access memory.
The time required by the database must be added to the time required for application processing and network latencies involved in delivering a response from MyYearbook.com. Harris wants that response returned as quickly as possible and he opted for the in-memory system over a standard relational database.
MyYearbook.com, an early user of eXtremeDB, was launched in 2005. It is also a user of the open source PostgreSQL system for relational database work, Harris said.
Oracle and other vendors offer embeddable database systems, both relational and non-relational. Harris said he considered TimesTen, an in-memory relational system, as an option but opted for eXtremeDB because he didn't like "the way you program against it."
Object-oriented databases are sometimes easier to implement when dealing with complex data, as opposed to data that fits into rows and columns. A multiple choice questionnaire with thousands of unique questions is a source of complex data, though Harris said part of the speed of eXtremeDB lies in its implementor's ability to get a complex answer from the questionnaire down to a 1.5-byte representation in the database.
In-memory systems speed database response times by eliminating the need to go to disk. High performance Web applications are taking on more in-memory characteristics, from caching the data they use in memory to putting the objects that make up the application in memory as well.