Database Reference
In-Depth Information
Figure 12.2 Overview of ColumnFamilys used for real-time insights
Use Case: Taste-Graph-Based Recommendation System
Another interesting use case is the graph-based recommendation system we deve-
loped on top of Cassandra. eBay is really a humongous graph of buyers, sellers,
and items. We capture these relationships in Cassandra to compute taste profiles
of every user in real time based on his or her activities (buy, sell, bid, etc.) on the
site. These taste profiles are used to show personalized recommendations to users
on the site, in real time.
System Overview
Let's take a look at the system and data flow that power the graph.
As shown in Figure 12.3 , whenever a user buys or bids on an item on eBay, we
create a new user-item edge into the Taste Graph modeled in Cassandra. In addi-
tion to capturing this activity, we also read other edges for that user and item to
compute the new Taste Vectors. That's how Taste Vectors always remain up-to-
date according to users' activities on the site. Whenever that user visits any page
on the site, we can show real-time recommendations based on the user's latest
taste profile data. This ever-growing system handles over 600 million writes and
over three billion reads per day. We're using SSDs here to support huge read de-
mand for computing and constant updating of the Taste Vectors. However, there
are some read-heavy use cases we're trying out on spinning drives to determine if
we can offset costs and maintain performance. We currently have 32TB of data in
the graph system, and it's growing every day. For more detail on how we actually
model Taste Graph in Cassandra and how Taste Vectors are computed, check out
our Cassandra Summit presentation referenced earlier.
Search WWH ::




Custom Search