0
从关于Cassandra的各种文档中,可以清楚地看到它将行键转换为MD5,然后将它们保存到数据库中。如果数值已经是MD5,卡桑德拉会避免计算行MD5吗?
如果我的行密钥已经是MD5和,是否有办法让Cassandra知道并避免计算MD5的MD5?
P.S.我所说的表中有文件,键是文件MD5总和。
从关于Cassandra的各种文档中,可以清楚地看到它将行键转换为MD5,然后将它们保存到数据库中。如果数值已经是MD5,卡桑德拉会避免计算行MD5吗?
如果我的行密钥已经是MD5和,是否有办法让Cassandra知道并避免计算MD5的MD5?
P.S.我所说的表中有文件,键是文件MD5总和。
Cassandra实际上做了什么是根据分区器定义的内容散列分区键。原来的分区是MD5,但现代版本的Cassandra默认为Murmur3(不是QUITE murmur3,但基本上是murmur3)。
无论是哪种情况,卡桑德拉散列分区键,因为没有办法让卡桑德拉知道它已经是MD5了。
如果你真的想避免散列,你可以看看其他的替代partitioners(如byte ordered或order preserving),或写自己的实现IPartitioner。但是,请注意,如果您确实使用不同的分区程序,则它将用于集群中的所有表/键空间。