我刚开始阅读有关Cassandra的内容,我不太明白Cassandra如何决定将数据写入哪些节点 .
我的理解是,Cassandra使用主键的一部分,特别是分区键和分区器来通过散列分区键来获取令牌,因此该令牌绑定到的节点/ vnode . 现在假设我的集群中有2个节点,每个节点上有256个节点,我没有使用任何集群键,只是一个简单的PK和一堆简单的列 . 散列分区键可以清楚地确定数据的去向 . 通过这种逻辑,只有512个唯一记录可用于存储 . 如果是真的会很有趣 . 那我在分区器部分错了吗?
考虑基本情况:只有一个节点,只有一个令牌 . 你认为它只能记录一个记录吗?当然不是 .
哈希确定该行将转到哪个节点,为true . 但主键确定行将存储在节点中的哪个位置 . 并且许多不同的主键可能导致相同的散列,但它们将全部由节点单独存储 .
1 回答
考虑基本情况:只有一个节点,只有一个令牌 . 你认为它只能记录一个记录吗?当然不是 .
哈希确定该行将转到哪个节点,为true . 但主键确定行将存储在节点中的哪个位置 . 并且许多不同的主键可能导致相同的散列,但它们将全部由节点单独存储 .