Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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
Performance 在键值存储中使用哈希作为ID_Performance_Hash_Hazelcast_Key Value Store_Murmurhash - Fatal编程技术网

Performance 在键值存储中使用哈希作为ID

Performance 在键值存储中使用哈希作为ID,performance,hash,hazelcast,key-value-store,murmurhash,Performance,Hash,Hazelcast,Key Value Store,Murmurhash,我想知道在Hazelcast这样的键值存储中使用散列(CityHash、Murrur等)作为键是否是一个好主意。我预计数据库中会有大约2000000000条记录(URL),因此可能会发生冲突。通过散列冲突丢失一些数据并不是非常关键,但当然最好避免它们 记录包含URL、时间戳和状态代码。主要操作是插入和查找URL是否已经存在 那么,你有什么建议,给定速度是相关的: 使用,或 使用哈希算法,如CityHash或杂音,或 使用相关字符串(本例中为URL)本身 Hazelcast不依赖key对象的ha

我想知道在Hazelcast这样的键值存储中使用散列(CityHash、Murrur等)作为键是否是一个好主意。我预计数据库中会有大约2000000000条记录(URL),因此可能会发生冲突。通过散列冲突丢失一些数据并不是非常关键,但当然最好避免它们

记录包含URL、时间戳和状态代码。主要操作是插入和查找URL是否已经存在

那么,你有什么建议,给定速度是相关的:

  • 使用,或
  • 使用哈希算法,如CityHash或杂音,或
  • 使用相关字符串(本例中为URL)本身

Hazelcast不依赖key对象的hashCode/equals方法,而是使用密钥二进制表示的杂音散列


简而言之,您不应该真正担心散列冲突

您需要存储的其余数据是什么?您需要运行什么类型的操作?只是插入并检查重复?或者你正在计算访问量或报告URL历史记录?我见过的许多键值存储都会在后台使用散列处理字符串键,包括透明地处理不同字符串之间的散列冲突。因此,在前面添加您自己的哈希代码可能会降低性能。谢谢您的评论。我已经为我的问题添加了一些细节。一些有解释的例子会很好。@Nilambar我认为我不能在这里给出任何有意义的例子,因为散列发生在幕后。相关代码可以在以下方法中找到:com.hazelcast.map.impl.proxy.MapProxyImpl#put(K,V,long,java.util.concurrent.TimeUnit)