gpt4 book ai didi

java - 如何生成HashCode以调用google/guava的Hashing#consistentHash?

转载 作者:行者123 更新时间:2023-11-29 03:01:31 25 4
gpt4 key购买 nike

google/guava@GitHub , 类 Hashing已实现consistent hashing@wiki . consistentHash 方法需要 HashCode对象:

public static int consistentHash(HashCode hashCode, int buckets) {
return consistentHash(hashCode.padToLong(), buckets);
}

我正在实现一个原型(prototype)分布式键值存储,并希望通过自定义 Row 键和 Column 键对键空间进行分区。

public int locateNodeIndexFor(Row r, Column c, int buckets) {
HashCode hashCode = // How to generate a HashCode based on @param r and @param c?
return Hashing.consistentHash(hashCode, buckets);
}

这里的 Row 类(和 Column 类)只是 String 字段的包装器,并且有自己的 hashCode( ) 方法。我的问题是如何根据 locateNodeIndexFor 中的@param r 和@param c 生成HashCode 以便调用Hashing#consistentHash

最佳答案

使用另一个HashFunction对行和列进行散列,例如

HashCode h = Hashing.murmur3_32().newHasher()
.putString(row.getString(), StandardCharsets.UTF_8)
.putString(col.getString(), StandardCharsets.UTF_8)
.hash()

关于java - 如何生成HashCode以调用google/guava的Hashing#consistentHash?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34540588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com