From: Christopher Date: Sat, 7 Mar 2020 18:34:38 +0000 (-0600) Subject: always use a random node for gets X-Git-Url: http://git.entropealabs.com/?a=commitdiff_plain;h=129c07f61b22adc2eef2d68512bd49eb2b053a89;p=cluster_kv.git always use a random node for gets --- diff --git a/lib/cluster_kv/ring.ex b/lib/cluster_kv/ring.ex index 57893af..122385b 100644 --- a/lib/cluster_kv/ring.ex +++ b/lib/cluster_kv/ring.ex @@ -208,9 +208,9 @@ defmodule ClusterKV.Ring do send({n, node}, {:get_key, prefix, ref, me}) end - defp get_node(key, r, _node, _repls) do - HashRing.key_to_node(r, key) - + defp get_node(key, r, _node, repls) do + nodes = HashRing.key_to_nodes(r, key, repls) + Enum.random(nodes) # case node in nodes do # true -> node # false -> Enum.random(nodes)