Cassandra twissandra数据模型有效吗?

Cassandra twissandra数据模型有效吗?,cassandra,data-modeling,Cassandra,Data Modeling,请帮帮我, 我是卡桑德拉世界的新手,所以我需要一些建议 我正在尝试为cassandra DB建立数据模型 在我的项目中,我有 -可以相互跟踪的用户, -与许多主题相关的文章 每个用户都可以关注许多主题 因此,我们的目标是在用户将获得的地方创建聚合提要: 他关注的所有主题的文章+ 他关注的所有朋友的文章+ 自我文章 我搜索了大约相同的任务,找到了twissandra示例项目 正如我在那个例子中所理解的,我们只在时间线中存储tweet的id,当我们需要获取时间线时,我们获取tweet的id,然后在单

请帮帮我, 我是卡桑德拉世界的新手,所以我需要一些建议

我正在尝试为cassandra DB建立数据模型

在我的项目中,我有 -可以相互跟踪的用户, -与许多主题相关的文章

每个用户都可以关注许多主题

因此,我们的目标是在用户将获得的地方创建聚合提要: 他关注的所有主题的文章+ 他关注的所有朋友的文章+ 自我文章

我搜索了大约相同的任务,找到了twissandra示例项目

正如我在那个例子中所理解的,我们只在时间线中存储tweet的id,当我们需要获取时间线时,我们获取tweet的id,然后在单独的非阻塞请求中逐个id获取每个tweet。收集所有推文后,我们将推文列表返回给用户

所以我的问题是:它有效吗

向DB发出约41个请求以获取一页推文

第二个问题是关于追随者。 当有人创建tweet时,我们会获取他的所有追随者,并将tweet id添加到他们的时间线中, 但若用户有数千个追随者呢


这意味着,对于只创建一条tweet,我们应该将(1+追随者计数)次数写入DB?

twissandra更像是一个玩具示例。它适用于某些工作负载,但您可能需要更多的数据来对数据进行更多的分区(分解大量行)

从本质上讲,虽然是的,但它是相当有效的-可以通过在时间线中包含内容来提高效率,但这取决于可能不是一个好主意的要求(如果需要删除/编辑)。写入应该是无问题的,如果您有足够的系统,20k写入/秒/节点是合理的


如果我正确理解了您的用例,您可能会很好地使用类似twissandra的模式,但一定要用预期的工作负载测试它。请记住,在一定规模下,一切都会变得稍微复杂一些(即,如果你预计有数百万篇文章需要进一步分区,请参阅)。

我们对社交网络数据建模进行了相同的研究,我认为从不同分区读取41篇文章来制作用户时间线帖子是没有效率的。这是一个非常繁重的操作,我认为这不是cassandra的本质,cassandra鼓励开发人员进行复制和去规范化。但我不明白当用户编辑他的帖子时我们会做什么。在不同分区中更新太多记录不是个好主意!