From: Christopher Date: Sat, 9 May 2020 01:06:16 +0000 (-0500) Subject: always use single node for update_if lookups X-Git-Url: http://git.entropealabs.com/?a=commitdiff_plain;h=8fb1f7a4654e0da1e9eb86e458ce8783d1d6fe35;p=cluster_kv.git always use single node for update_if lookups --- diff --git a/lib/cluster_kv/ring.ex b/lib/cluster_kv/ring.ex index fce5038..38cf5a3 100644 --- a/lib/cluster_kv/ring.ex +++ b/lib/cluster_kv/ring.ex @@ -210,10 +210,11 @@ defmodule ClusterKV.Ring do {:update_if, keyspace, key, value, fun}, from, @ready, - %SL{data: %Ring{name: n, node: me, requests: reqs, ring: r, replicas: repls} = data} = sl + %SL{data: %Ring{name: n, node: me, requests: reqs, ring: r} = data} = sl ) do key = "#{keyspace}:#{key}" - node = get_node(key, r, me, repls) + node = HashRing.key_to_node(r, key) + # node = get_node(key, r, me, repls) ref = make_ref() send({n, node}, {:update_if, key, value, fun, ref, me}) {:ok, %SL{sl | data: %Ring{data | requests: [{ref, from, [node], []} | reqs]}}, []}