Nmedia - Fotolia
eHarmony hooks up with Redis NoSQL database for hot storage
The Redis key-value store finds use in a system to match would-be romantic partners on dating site eHarmony, which employs a variety of NoSQL databases to make love click online.
While it is not going away, the stalwart relational database management system is taking a subsidiary role at times in such key web applications as session management, recommendation engines and pattern matching, and it is being supplanted by technologies like the Redis NoSQL database.
A relational database, such as Oracle, MySQL or SQL Server, is still often the system of record. That persistent store is the cold data in the equation. The hot data driving rapid online operations is now often stored in a non-relational form.
Among the databases looking to pick up more of such web work is the in-memory Redis NoSQL database, a key-value store that online matchmaker eHarmony Inc. is using as part of its attempt to quickly connect people looking for love.
The eHarmony matchmaking system applies analytics in near real time to quickly pair a candidate with a best-case potential mate. Quickly serving up compatible matches calls, in part, for low-latency searches of personality trait data.
For the portion of the eHarmony system that handles real-time matching of user profiles, a key-value store like the Redis NoSQL database yielded benefits, according to Vijaykumar Vangapandu, a software architect at Los Angeles-based eHarmony. It was especially helpful in meeting requirements to read data quickly.
"We still have Oracle, but that data is the cold data," Vangapandu said.
When user profile data was read from the Oracle RDBMS in earlier editions of the matchmaking system, interactive lag was a drawback.
"The user felt it," Vangapandu said. "That's when we moved to NoSQL-based key-value stores that give us horizontal scalability."
Vangapandu said the NoSQL quest started a few years ago with Voldemort, an open source distributed database project launched by LinkedIn and inspired by a paper written on Amazon Dynamo. In a session he led earlier this year at the RedisConf18 event in San Francisco, Vangapandu said that the online dating service more recently shifted its efforts to the Redis open source database, first for authentication services and then for matching and compatibility badging services.
This approach is different from the days when all-encompassing relational databases ruled.
Vangapandu emphasized that the eHarmony system today uses a variety of databases, including the MongoDB document database, which helps to run the messaging system for users of the company's service. Vangapandu and his colleagues described that experience in a session at the MongoDB World 2017 user conference held in Chicago in June 2017.
As for hot data, Vangapandu echoes an adage commonly heard among developers and architects in recent years: Deploy databases that are fit for purpose.
"It's not just Redis -- we use other key-value stores, too," he said. "As a software architect, it is my job to find the best tool for the problem."
Redis NoSQL database speed
The Redis NoSQL database supports specific data structures that can quickly read dynamic data, Vangapandu said. Such structures -- including binary safe strings, lists, sets and hashes -- ease a programmer's task by providing a high level of abstraction to deal with data during development.
Vangapandu said eHarmony's Redis experience began in 2015 with the open source version of the Redis NoSQL database. Since then, the company has moved some services to Redis Labs' commercial Redis Enterprise software because of its support for multimaster replication. That feature became important as data store clusters multiplied, Vangapandu added.
In-memory serves well
In an interview, Manish Gupta, chief marketing officer at Redis Labs, said he too sees some division of database use along hot and cold lines, with relational SQL databases running back-end cold storage and front-end NoSQL being used for hot storage when real-time performance is needed. He listed geolocation, fraud detection and credit reports among applications for which Redis Enterprise is being used.
Still, hot storage isn't the answer to all memory quandaries, especially given the cost disadvantages that in-memory databases like Redis can incur in terms of semiconductor memory. Such costs had to drop before some organizations could regularly rely on such NoSQL databases on a larger scale for particular applications.
That is one reason Vangapandu credited the Redis Enterprise edition as valuable for its extended support of flash memory.
Vijaykumar Vangapandusoftware architect, eHarmony
"With [Redis Enterprise] flash storage, we can keep hot data in memory, but move some cold data to a flash drive," he said.
Redis use has seen an uptick in recent years, although it still lags behind MongoDB in the DB-Engines website's rankings of the most popular databases. By that measure, non-relational databases in the top 10 as of July 1, 2018, were MongoDB, Redis and Cassandra, as well as the Elasticsearch full-text search and analytics engine.
The new Redis landscape is diverse, using various frameworks, languages and databases.
"We used to have a single database -- Oracle. Now, we have so many NoSQL stores," Vangapandu said. "We use Redis for this, MongoDB for that, HBase for another service. We are completely polyglot."