how to Solve the "Digg" problem in MongoDB
Posted
by user193116
on Stack Overflow
See other posts from Stack Overflow
or by user193116
Published on 2010-05-12T22:19:00Z
Indexed on
2010/05/12
22:24 UTC
Read the original article
Hit count: 241
A while back,a Digg developer had posted this blog ,"http://about.digg.com/blog/looking-future-cassandra", where the he described one of the issues that were not optimally solved in MySQL. This was cited as one of the reasons for their move to Cassandra.
I have been playing with MongoDB and I would like to understand how to
implement the MongoDB collections for this problem
From the article, the schema for this information in MySQL :
CREATE TABLE Diggs
(
id
INT(11),
itemid
INT(11),
userid
INT(11),
digdate
DATETIME,
PRIMARY KEY (id
),
KEY user
(userid
),
KEY item
(itemid
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE Friends
(
id
INT(10) AUTO_INCREMENT,
userid
INT(10),
username
VARCHAR(15),
friendid
INT(10),
friendname
VARCHAR(15),
mutual
TINYINT(1),
date_created
DATETIME,
PRIMARY KEY (id
),
UNIQUE KEY Friend_unique
(userid
,friendid
),
KEY Friend_friend
(friendid
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
This problem is ubiquitous in social networking scenario implementation. People befriend a lot of people and they in turn digg a lot of things. Quickly showing a user what his/her friends are up to is very critical.
I understand that several blogs have since then provided a pure RDBMs solution with indexes for this issue; however I am curious as to how this could be solved in MongoDB.
© Stack Overflow or respective owner