1

http://about.digg.com/blog/looking-future-cassandra

我找到了这篇关于 Digg 迁移到 Cassandra 的文章。但是我没有得到作者对 Bucket for pair (user,item) 的想法。关于这个想法的更多细节将有助于我更好地理解解决方案。

谢谢

4

1 回答 1

1

听起来他们在每个用户使用一个超级列族中的一行,每个项目一个超级列;项目超列的子列代表挖该项目的朋友。至少在 pycassa 中,这使得插入变得如此简单:

column_family.insert(user, {item: {friend: ''}})

他们也可以通过其他几种方式做到这一点,我不确定他们选择了哪种方式。

一种是使用标准列族,使用 (user,item) 组合作为行键,并且每个挖掘项目的朋友使用一列:

column_family.insert(user + item, {friend: ''})

另一种是使用标准列族,仅使用 (user) 作为行键,并使用 (item,friend) 组合作为列名:

column_family.insert(user, {item + friend: ''})

听起来这不是他们使用的,但它也是一个可以接受的选择。

于 2010-12-01T18:13:25.790 回答