Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hash Cassandra如何搜索字符串的唯一键?_Hash_Cassandra_String Hashing - Fatal编程技术网

Hash Cassandra如何搜索字符串的唯一键?

Hash Cassandra如何搜索字符串的唯一键?,hash,cassandra,string-hashing,Hash,Cassandra,String Hashing,我想使用字符串(大约6到7个字符)作为复合主键中的唯一键 我在谷歌上搜索过在主键中使用字符串是否会影响性能,发现不会,因为Cassandra使用哈希搜索唯一键。(请有人确认) 所以我想知道Cassandra使用了什么技术来搜索唯一键,如果它使用散列,那么它使用哪种散列算法?还想知道Cassandra在发生冲突的情况下做了什么,因为在散列中总是有冲突的可能性 Cassandra使用3哈希处理分区键。它是否使用相同的搜索唯一密钥?那么冲突呢。分区键值被散列,然后用于指向拥有该令牌范围的节点。因为哈希

我想使用字符串(大约6到7个字符)作为复合主键中的唯一键

我在谷歌上搜索过在主键中使用字符串是否会影响性能,发现不会,因为Cassandra使用哈希搜索唯一键。(请有人确认)

所以我想知道Cassandra使用了什么技术来搜索唯一键,如果它使用散列,那么它使用哪种散列算法?还想知道Cassandra在发生冲突的情况下做了什么,因为在散列中总是有冲突的可能性


Cassandra使用3哈希处理分区键。它是否使用相同的搜索唯一密钥?那么冲突呢。

分区键值被散列,然后用于指向拥有该令牌范围的节点。因为哈希值对于一个值总是相同的,所以不存在冲突。如果您使用相同的值分区键,您将写入现有分区,这将导致更新。Insert和update都是名为upsert的相同操作。希望能有所帮助。

既然你提到了复合键,那么我假设你有这样一个主键(PartionKey,StringVal),其中StringVal是6到7个字符,我想你想知道C*如何有效地记录这个主键。如果这是您的问题,那么答案在于C*如何存储数据。在本例中,使用“StringVal”作为排序顺序,将给定分区键的所有数据存储为一个物理行。因此,如果给定PartionKey值有一百万个唯一的“StringVal”,那么它们都将作为一个物理行(在磁盘上)存储在一个节点上(由PartionKey的哈希确定),并按默认的升序“StringVal”排序。PK中除分区键以外的所有列都称为“集群”列,因为它们决定集群顺序。所以在这个例子中,复合键的第一列是分区键,第二列是集群列,它决定了一个分区键的所有记录的集群顺序。现在,如果您想获得一个特定的PK记录,因为C*将主键的偏移量存储在索引文件中(--index.db files for a column family),因此获取PK的特定记录非常有效,因为它涉及到查找该位置。此外,这还允许C进行有效的范围查询,例如,您可以通过指定“StringVal”的范围(如“nnn'>sv<'mmm”)来获得与分区键对应的物理行片段,在您的情况下,这将是词法顺序比较。但关键是,由于它在磁盘上的顺序是特定的,并且C*已经偏移到与“StringVal”值对应的各种记录,因此它可以进行非常有效的搜索

@Matijia谢谢你的回复,我知道分区密钥冲突不是问题,但我想知道唯一密钥的体系结构很好的答案,但我仍然不知道Cassandra将如何搜索字符串?它使用散列吗?谢谢!哈希仅用于PartionKey,而不用于群集列。这种类型的散列称为一致散列,Cassandra为此使用murmer3partitioner。有关散列的详细信息,请参阅此。您可能还发现此链接很有用