【问题标题】:Does the same partition key in different cassandra tables add up to cell theoretical limit?不同 cassandra 表中的相同分区键加起来是否达到单元格理论限制?
【发布时间】:2016-08-10 14:19:49
【问题描述】:

众所周知,Cassandra 分区的理论限制为 20 亿个单元。但是在下面这样的情况下它是如何工作的:

create table table1 (
    some_id int PRIMARY KEY,
    some_name text
);

create table table2 (
    other_id int PRIMARY KEY,
    other_name text
);

假设我们在 table1 的分区 (some_id = 1) 中有 10 亿个单元格。 如果我们在 table2 上的分区 (other_id = 1) 中还有 10 亿个单元格,这些单元格加起来会达到 20 亿个理论极限吗?

换句话说,不同表中相同的分区键是否存储在一起?

【问题讨论】:

  • 感谢 RussS 的评论。它与那个帖子略有不同,但这种差异对我来说很有趣。我发现的每一篇文章都说明了什么是分区键以及它们如何在整个集群中分布,但没有一篇文章带来了我的帖子中要求的信息(我猜)。至少它仍然让我担心。
  • 不同的表即使使用相同的token也有不同的分区
  • 就是这样 RussS,谢谢!在你回答之前我还不清楚(即使在阅读了你建议的帖子之后)。
  • 如果它们是同一个“分区”,那么分区将具有异构组合(如果表具有不同的结构)。引擎盖下的存储也是根据桌子隔离的。嗯,我将所有这些格式化为另一个答案。

标签: cassandra


【解决方案1】:

不同的表有不同的分区。这使得任何特定分区的结构都是同质的(它将始终遵循单个表的禁止模式),从而允许优化。

如果您深入了解存储引擎,您会发现每个表甚至都有自己的目录结构,这清楚地表明一个表的分区永远不会与另一个表的分区交互。 (参见 /var/lib/cassandra/)

【讨论】:

  • 对于单个表,如果我使用单节点 cassandra 集群,在 partitionkey=a 中添加 10 亿个单元格和在 partitionKey=b 中添加 10 亿个单元格是否会导致 cassandra 达到该限制?
  • 理论限制是每个分区而不是每个集群或节点
猜你喜欢
  • 2018-09-27
  • 2019-05-19
  • 1970-01-01
  • 2019-04-23
  • 2015-08-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-20
  • 1970-01-01
相关资源
最近更新 更多