From 8fb1f7a4654e0da1e9eb86e458ce8783d1d6fe35 Mon Sep 17 00:00:00 2001 From: Christopher Date: Fri, 8 May 2020 20:06:16 -0500 Subject: [PATCH] always use single node for update_if lookups --- lib/cluster_kv/ring.ex | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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]}}, []} -- 2.45.3