Jas*_*son 4 cassandra cassandra-2.0
我有一个多租户应用程序,其中tenantId将成为每个查询的一部分,所以我将它放入所有表的分区键中.
例子:
CREATE TABLE users {
tenantId text,
user text,
active boolean,
PRIMARY_KEY (tenantId, user)
}
CREATE TABLE roles {
tenantId text,
rolename text,
PRIMARY_KEY (tenantId, rolename)
}
Run Code Online (Sandbox Code Playgroud)
现在,想象一下像这样的100个表......
我的问题是:
Cassandra会将tenantId'foo'散列为将所有表中的所有数据指向同一个节点,并使其成为一个超级热点,还是会均匀地将每个表和租户数据均匀地分布在集群周围?
简单的答案,令牌值(分区键的散列)是相同的,它不依赖于表名或其他什么.原因是我们在整个集群中使用相同的分区(Murmur3).
因此,在您的情况下,是的,如果您的分区键是tenantId,则来自一个客户的所有数据将分发到相同的副本,这适用于具有此分区键的所有表
| 归档时间: |
|
| 查看次数: |
564 次 |
| 最近记录: |