gpt4 book ai didi

cassandra - Cassandra 中的数据分布

转载 作者:行者123 更新时间:2023-12-03 08:10:54 25 4
gpt4 key购买 nike

我听说过 Cassandra 及其发行版。其实想知道数据在整个集群中是如何分布的现象?我的意思是 Cassandra 如何决定哪些节点有哪些数据?

最佳答案

如果您了解 HastTable 数据结构以及如何在 Hashtable 中完成散列,则非常简单。

哈希表

第 1 步。
基本上,如何在哈希表中决定键的索引是

index = hashfunc(key_you_want_to_distribute) % array_size

寻找 choosing hash function详情。

第 2 步。
然后要检索您想要的数据,您只需为其提供您想要查找的值。它将为该值创建哈希并查找该索引。

Cassandra

它在 Distribute Hashtables/Cassandra 中的工作方式相同。

第1步。 在 cassandra 中,您必须指定要包含在记录中的哪些字段以创建哈希。
比如说,如果你有一张 table User .您可能希望通过他们的 username 分配用户,因此您决定将其作为主键。

您选择创建哈希的字段在 Cassandra 世界中称为分区键,因为它是对记录进行分区的决定性因素。

然后,Cassandra 为您将要插入的记录创建哈希,然后根据您的节点/机器的范围,分发记录。

假设你有 3 个节点,哈希范围如下,
node1 | 1    - 2000
node2 | 2000 - 4000
node3 | 4000 - 6000

例如,请参见下表,我给出了随机散列以使其简单。 Cassandra 实际使用 Murmur3 哈希。
username  | hash(example) | which node it goes to  |
----------|---------------|------------------------|
prayagupd | 1 | node1 |
mike | 3000 | node2 |
zach | 5000 | node3 |

第2步。 然后,如果您想检索用户名 'prayagupd' 的用户, cassandra 将为它创建哈希,比如它的 1它知道 1 属于 node1 (1-2000)。

答对了!!!

关于cassandra - Cassandra 中的数据分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15566539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com