]> Entropealabs - cluster_kv.git/commitdiff
get values in stream
authorChristopher <chris@entropealabs.com>
Sat, 7 Mar 2020 15:19:21 +0000 (09:19 -0600)
committerChristopher <chris@entropealabs.com>
Sat, 7 Mar 2020 15:19:21 +0000 (09:19 -0600)
lib/cluster_kv/ring.ex

index 2d44a8a977a5cacd26712adbce06e89784c2736e..8c26f8b9d15fc7bcb9cb79c7f6f44613f81fcf9b 100644 (file)
@@ -224,6 +224,9 @@ defmodule ClusterKV.Ring do
       :"$end_of_table" -> false
       _ -> true
     end)
+    |> Stream.map(fn key ->
+      {key, DB.get(db, key)}
+    end)
   end
 
   defp sync_db(name, me, db, ring, repls) do
@@ -232,7 +235,7 @@ defmodule ClusterKV.Ring do
       |> do_stream()
       |> Stream.chunk_every(10)
       |> Stream.each(fn chunk ->
-        Enum.each(chunk, fn key ->
+        Enum.each(chunk, fn {key, v} ->
           nodes =
             ring
             |> HashRing.key_to_nodes(key, repls)
@@ -241,7 +244,6 @@ defmodule ClusterKV.Ring do
               _ -> true
             end)
 
-          v = DB.get(db, key)
           Logger.debug("Sync: #{key}: #{inspect(v)}")
           cast_sync(name, nodes, key, v)
         end)