mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-11-01 16:51:28 +01:00
Change ConsistentMap key hasher to use sha256
Change-Id: Ia83322cc314b178dd438a4c7a05e7ab3bac4ad3d
This commit is contained in:
parent
1583a6f30e
commit
13d25a1023
@ -20,7 +20,6 @@ import com.google.common.collect.ImmutableSet;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.google.common.hash.HashFunction;
|
||||
import com.google.common.hash.Hashing;
|
||||
import org.onlab.util.HexString;
|
||||
import org.onosproject.cluster.PartitionId;
|
||||
@ -66,9 +65,8 @@ public class FederatedDistributedPrimitiveCreator implements DistributedPrimitiv
|
||||
Map<PartitionId, AsyncConsistentMap<String, byte[]>> maps =
|
||||
Maps.transformValues(members,
|
||||
partition -> partition.newAsyncConsistentMap(name, null));
|
||||
HashFunction hashFunction = Hashing.goodFastHash(32);
|
||||
Hasher<String> hasher = key -> {
|
||||
int hashCode = hashFunction.hashUnencodedChars(key).asInt();
|
||||
int hashCode = Hashing.sha256().hashString(key, Charsets.UTF_8).asInt();
|
||||
return sortedMemberPartitionIds.get(Math.abs(hashCode) % members.size());
|
||||
};
|
||||
AsyncConsistentMap<String, byte[]> partitionedMap = new PartitionedAsyncConsistentMap<>(name, maps, hasher);
|
||||
|
||||
@ -23,12 +23,14 @@ import java.util.Map;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
import com.google.common.base.Charsets;
|
||||
import com.google.common.cache.Cache;
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.hash.Hashing;
|
||||
import com.google.common.util.concurrent.Futures;
|
||||
import org.onlab.util.HexString;
|
||||
import org.onosproject.cluster.PartitionId;
|
||||
import org.onosproject.store.primitives.MapUpdate;
|
||||
import org.onosproject.store.primitives.PartitionService;
|
||||
@ -101,7 +103,8 @@ public class TransactionManager {
|
||||
}
|
||||
|
||||
Hasher<K> hasher = key -> {
|
||||
int hashCode = Hashing.sha256().hashBytes(serializer.encode(key)).asInt();
|
||||
int hashCode = Hashing.sha256()
|
||||
.hashString(HexString.toHexString(serializer.encode(key)), Charsets.UTF_8).asInt();
|
||||
return sortedPartitions.get(Math.abs(hashCode) % sortedPartitions.size());
|
||||
};
|
||||
return new PartitionedTransactionalMap<>(partitions, hasher);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user