[Groonga-commit] droonga/droonga-engine at a2ba84c [master] Store information about nodes in foreign cluster

Back to archive index

YUKI Hiroshi null+****@clear*****
Thu Dec 11 18:34:42 JST 2014


YUKI Hiroshi	2014-12-11 18:34:42 +0900 (Thu, 11 Dec 2014)

  New Revision: a2ba84c49f4c9bd7db43ee573da072c63bef6f74
  https://github.com/droonga/droonga-engine/commit/a2ba84c49f4c9bd7db43ee573da072c63bef6f74

  Merged 97ba0d9: Merge ../droonga-engine into replicas-in-a-branch

  Message:
    Store information about nodes in foreign cluster

  Modified files:
    lib/droonga/engine_state.rb
    lib/droonga/live_nodes_list.rb
    lib/droonga/serf.rb

  Modified: lib/droonga/engine_state.rb (+1 -1)
===================================================================
--- lib/droonga/engine_state.rb    2014-12-11 18:33:12 +0900 (aa2f7f8)
+++ lib/droonga/engine_state.rb    2014-12-11 18:34:42 +0900 (5b2287d)
@@ -123,7 +123,7 @@ module Droonga
     #  * responses           : undetermined
     def live_nodes
       if @live_nodes_list
-        @live_nodes_list.all_nodes
+        @live_nodes_list.live_nodes
       else
         all_nodes
       end

  Modified: lib/droonga/live_nodes_list.rb (+16 -1)
===================================================================
--- lib/droonga/live_nodes_list.rb    2014-12-11 18:33:12 +0900 (cf4ab3a)
+++ lib/droonga/live_nodes_list.rb    2014-12-11 18:34:42 +0900 (c3ec720)
@@ -23,15 +23,30 @@ module Droonga
       @nodes.keys
     end
 
+    def live_nodes
+      @live_nodes ||= collect_live_nodes
+    end
+
     def suspended_nodes
       @suspended_nodes ||= collect_suspended_nodes
     end
 
     private
+    def collect_live_nodes
+      nodes = []
+      @nodes.each do |name, state|
+        if not state["foreign"] and state["live"]
+          nodes << name
+        end
+      end
+      nodes
+    end
+
     def collect_suspended_nodes
       nodes = []
       @nodes.each do |name, state|
-        if state["tags"]["suspended"] == "true"
+        if not state["foreign"] and
+             state["tags"]["suspended"] == "true"
           nodes << name
         end
       end

  Modified: lib/droonga/serf.rb (+7 -7)
===================================================================
--- lib/droonga/serf.rb    2014-12-11 18:33:12 +0900 (e014c4b)
+++ lib/droonga/serf.rb    2014-12-11 18:34:42 +0900 (6220c38)
@@ -133,13 +133,13 @@ module Droonga
       members = result[:result]
       current_cluster_id = cluster_id
       members["members"].each do |member|
-        if member["status"] == "alive" and
-           member["tags"]["cluster_id"] == current_cluster_id
-          nodes_list[member["name"]] = {
-            "serfAddress" => member["addr"],
-            "tags"        => member["tags"],
-          }
-        end
+        foreign = member["tags"]["cluster_id"] != current_cluster_id
+        nodes_list[member["name"]] = {
+          "live"        => member["status"] == "alive",
+          "foreign"     => foreign,
+          "serfAddress" => member["addr"],
+          "tags"        => member["tags"],
+        }
       end
       nodes_list
     end
-------------- next part --------------
HTML����������������������������...
Télécharger 



More information about the Groonga-commit mailing list
Back to archive index