]> Entropealabs - cluster_kv.git/commitdiff
pass correct node to prefix lookups
authorChristopher <chris@entropealabs.com>
Sat, 7 Mar 2020 03:19:28 +0000 (21:19 -0600)
committerChristopher <chris@entropealabs.com>
Sat, 7 Mar 2020 03:19:28 +0000 (21:19 -0600)
lib/cluster_kv/ring.ex

index 160281c98f71757d85e1af733031350395a5be52..bb73e56d6007e54c3824960c03b4eb38519d7b62 100644 (file)
@@ -45,14 +45,17 @@ defmodule ClusterKV.Ring do
   @handle_anti_entropy "HandleAntiEntropy"
 
   def put(name, key, value) do
+    Logger.debug("PUT - #{key}: #{inspect(value)}")
     :gen_statem.cast(ClusterKV.ring_name(name), {:put, key, value})
   end
 
-  def get(name, key) do
-    :gen_statem.call(ClusterKV.ring_name(name), {:get, key})
+  def get(name, key, timeout \\ 5000) do
+    Logger.debug("GET - #{key}")
+    :gen_statem.call(ClusterKV.ring_name(name), {:get, key}, timeout)
   end
 
   def prefix(name, prefix) do
+    Logger.debug("PREFIX - #{key}")
     :gen_statem.call(ClusterKV.ring_name(name), {:prefix, prefix})
   end
 
@@ -119,13 +122,14 @@ defmodule ClusterKV.Ring do
         {:prefix, prefix},
         from,
         @ready,
-        %SL{data: %Ring{name: n, requests: reqs, ring: r} = data} = sl
+        %SL{data: %Ring{name: n, node: me, requests: reqs, ring: r} = data} = sl
       ) do
     nodes = HashRing.nodes(r)
     ref = make_ref()
 
     Enum.each(nodes, fn node ->
-      send({n, node}, {:get_prefix, prefix, ref, node})
+      Logger.debug("Prefix request to #{inspect(node)}")
+      send({n, node}, {:get_prefix, prefix, ref, me})
     end)
 
     {:ok, %SL{sl | data: %Ring{data | requests: [{ref, from, length(nodes), []} | reqs]}}, []}