]> Entropealabs - cluster_kv.git/commitdiff
always use single node for update_if lookups
authorChristopher <chris@entropealabs.com>
Sat, 9 May 2020 01:06:16 +0000 (20:06 -0500)
committerChristopher <chris@entropealabs.com>
Sat, 9 May 2020 01:06:16 +0000 (20:06 -0500)
lib/cluster_kv/ring.ex

index fce5038427f2386f02e2007eeb040aaaafba89d0..38cf5a3cca8897c1e0ad860c8d5e06f9a8995dca 100644 (file)
@@ -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]}}, []}