algorithm - Cassandra 的 token 功能背后的算法是什么?

标签 algorithm cassandra token partition murmurhash

我的驱动程序中的 Token 函数不支持复合分区键,但它与单个分区键配合得很好,它采用 8 位形式的二进制作为输入并将其传递给 murmur3 哈希函数并提取来自 murmur3 的结果的 64 位有符号小整数( token )并忽略任何额外的二进制缓冲区。

所以我希望为复合分区键生成二进制文件,然后像往常一样将其传递给 murmur3,算法或按位运算将非常有用,或者至少是任何编程语言的源代码。

我指的不是 murmur3 部分,只是转换/混合复合分区键并以二进制形式输出原始字节的 token 端。

最佳答案

查看驱动程序,因为它们已生成 token 以找到正确的协调器。 https://github.com/datastax/java-driver/blob/8be7570a3c7fbba773ae2581bbf26e8196e7d6fb/driver-core/src/main/java/com/datastax/driver/core/Token.java#L112

它与典型的 murmur3 略有不同,因为它在制作时存在错误,并且无法在不破坏现有集群的情况下对其进行更改。所以我建议从他们那里复制它,或者更好的是,使用现有的驱动程序来查找 token 。

关于algorithm - Cassandra 的 token 功能背后的算法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52564139/

相关文章:

cassandra 集群不响

excel - 通过 Microsoft Graph 访问 Workbook 对象所需的正确权限

wcf - 如何通过 SAML 断言从 ACS 获取访问 token ?

c# - "Invalid token ' { ' in class, struct, or interface member declaration"

java - 遍历深度优先搜索时从邻接表中获取节点 - Java

javascript - 在 Bonferroni 不等式的 JS 实现中避免多重循环

java - 如何迭代符合正则表达式的字符串

cassandra - 如何减少Cassandra集群的修复时间?

mysql - 将数据模型从 MySQL 迁移到 Cassandra

python - Karatsuba 的算法 : split the digit sequences about the middle