问题标签 [consistent-hashing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Treemap put 似乎正在删除条目
我正在尝试使用带有无符号长比较器的树形图。但是,树形图的 put 似乎正在删除整体。没有比较器,它工作得很好,但我似乎无法弄清楚比较器有什么问题。下面的示例代码:
公共类主要{
}
结果如下:
memcached - 如何在 memcached c 客户端中使用一致的哈希?
我正在使用 libmemcached c 客户端来设置并获取 memcache 值。
我想使用一致的哈希算法进行设置并获取密钥。 http://docs.libmemcached.org/memcached_behavior.html#memcached_behavior_setlink
但我不知道如何实现这个。非常感谢代码片段或参考链接。
提前致谢。
hashtable - 一致性哈希:环的数据结构保存在哪里
我们在一个环中有 N 个具有基本一致性哈希的缓存节点。
问题:
- 是否存储了此环的数据结构:
- 在每个节点上?
- 部分在每个节点及其范围?
- 在单独的机器上作为负载平衡器?
- 当其他节点加入时,环会发生什么?
非常感谢。
hash - 确保哈希函数与切片充分混合
如果这个问题很愚蠢,请原谅我,但我开始学习一致性哈希,在阅读了 Tom White 的博客文章后,意识到大多数默认哈希函数没有很好地混合,我想到了确保任意哈希函数是最低限度的充分混合。
我的想法最好用这样的例子来解释:
在跨这些桶的一致缓存的标准哈希环实现下,您将获得非常好的性能,并且几乎每个条目都将集中到桶 1 中。但是,如果我们在每种情况下都使用位 4 和 5 作为 MSB,那么这些桶突然变得非常好混合,将新对象分配给缓存变得微不足道,只需要检查 2 位。
在我看来,在跨多个节点构建分布式网络时,可以很容易地扩展这个概念。在我的特定情况下,我将使用它来确定将给定数据放入哪个缓存。增加的放置速度并不是一个真正的问题,但确保我的缓存混合良好,我正在考虑只为给定的缓存选择一些最佳混合的位。以后索引的任何信息都将基于相同的位进行索引。
在我天真的想法中,这是一个比引入虚拟节点或构建更好的哈希函数更简单的解决方案。也就是说,我看不到任何提及这样的方法,我担心在我的散列无知中我在这里做错了,我可能会引入意想不到的后果。
这种方法安全吗?我应该使用它吗?以前是否使用过这种方法,是否有任何确定的最小唯一位组的算法?
akka - Akka ConsistentHashingRouter 行为不符合预期
我使用 ConsistentHashingRouter 将数据从一个参与者分发到一组其他参与者。每条消息都包含一个这样的元组(items: Set[Int], msg: String)
。我编写了一个实现 ConsistentHashable 的案例类,将整数集定义为像这样的一致哈希键。
现在,当我让一些生产者参与者向路由器发送大量消息时,路由器将它们非常不均匀地分配给目标节点。
我尝试了不同数量的目标演员。在所有情况下,收到消息最多的参与者收到的消息量是收到消息最少的参与者的两倍多。
使用散列时,我希望消息在目标之间均匀分布,或者我在这里遗漏了什么?
java - 使用 spymemcached 和 HashAlgorithm.KETAMA_HASH 时如何处理恢复 memcached 节点
我正在使用 spymemcached 和 HashAlgorithm.KETAMA_HASH 连接到 5 个节点的 memcached 池。
我的理解是当我们使用一致的散列算法时,当一个节点关闭时,我们不需要担心,因为密钥会被重新分配(影响最小)
如果宕机的节点要加入池怎么办。我需要做什么?
我是否应该确保需要删除过时的数据?或者我的程序是否需要针对这种情况进行特殊处理?
php - 一致的哈希和 redis - 如何在 php 和 python 中使用相同的算法
在 python 中,我使用一个名为 hash_ring 的 python 库来对 redis 的键进行分片。但是..我现在需要一个 php 应用程序和 python 应用程序来找到一个给定密钥的分片服务器。
是否有一个一致的哈希库使用相同的底层算法但有许多支持的客户端,如 ruby、php、python 等?
hash - vbucket如何解决切换时服务器数据丢失的问题
memcached 使用 vbucket 来动态添加/删除服务器。我的问题是它比一致哈希更好。此外,当添加服务器并且状态从 Pending 更改为 Active 时。它首先完成,然后 vbucket 指向新添加的服务器。因此,发送给旧请求的请求也必须发送给新请求,并且切换应该以原子方式进行。如何 ?
python - 使用 ketama 的 Python memcache 一致性哈希
我有一个在运行时添加额外的内存缓存实例的代码,但这会使我的密钥丢失。我知道有几个可用的库,例如一致哈希、哈希环,但我无法在我的代码中使用它们。我知道有 ketama 可用,但找不到它的 python 代码示例。
memcached - Memcached 一致性哈希和网络分区,如何解决?
我的理解是,当在“一致哈希”模式下使用 memcached 时,当节点关闭时,客户端将使用算法重新映射密钥。
考虑我有 2 个客户端(A,B)和两个服务器(C,D)
如果客户端 A 认为服务器 C 已关闭,但 B 认为 C 还活着怎么办?
所以A会继续使用C&D,而B只会使用D。如何解决这种情况下出现的数据不一致?