[Groonga-commit] droonga/droonga-engine at a47fe2f [master] Resolve internal service name and public node name mutually

Back to archive index

YUKI Hiroshi null+****@clear*****
Thu Apr 2 18:34:38 JST 2015


YUKI Hiroshi	2015-04-02 18:34:38 +0900 (Thu, 02 Apr 2015)

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

  Message:
    Resolve internal service name and public node name mutually

  Modified files:
    lib/droonga/dispatcher.rb
    lib/droonga/engine_state.rb

  Modified: lib/droonga/dispatcher.rb (+17 -9)
===================================================================
--- lib/droonga/dispatcher.rb    2015-04-02 17:54:58 +0900 (7e56a94)
+++ lib/droonga/dispatcher.rb    2015-04-02 18:34:38 +0900 (1cc2808)
@@ -231,13 +231,13 @@ module Droonga
           end
           routes = dataset.compute_routes(step, target_nodes)
           step["routes"] = routes.collect do |route|
-            actual_route(route)
+            internal_route(route)
           end
         else
           step["routes"] ||= [id]
         end
         destinations += step["routes"].collect do |route|
-          actual_route(route)
+          internal_farm_path(route)
         end
       end
 
@@ -253,13 +253,13 @@ module Droonga
       logger.trace("process_local_message: start", :steps => local_message)
       task = local_message["task"]
       slice_name = task["route"]
-      slice_name = farm_path(slice_name)
+      slice_name = public_route(slice_name)
       step = task["step"]
       command = step["command"]
       descendants = {}
       step["descendants"].each do |name, routes|
         descendants[name] = routes.collect do |route|
-          actual_route(route)
+          internal_farm_path(route)
         end
       end
       local_message["descendants"] = descendants
@@ -291,12 +291,20 @@ module Droonga
     end
 
     private
-    def actual_route(route)
-      @engine_state.actual_route(route)
+    def internal_route(route)
+      @engine_state.internal_route(route)
     end
 
-    def farm_path(route)
-      @engine_state.farm_path(route)
+    def public_route(route)
+      @engine_state.public_route(route)
+    end
+
+    def internal_farm_path(route)
+      @engine_state.internal_farm_path(route)
+    end
+
+    def public_farm_path(route)
+      @engine_state.public_farm_path(route)
     end
 
     def process_input_message(message)
@@ -412,7 +420,7 @@ module Droonga
       def select_responsive_routes(routes)
         selected_nodes =****@clust*****_nodes
         routes.select do |route|
-          selected_nodes.include?(@engine_state.actual_route(route))
+          selected_nodes.include?(@engine_state.public_farm_path(route))
         end
       end
     end

  Modified: lib/droonga/engine_state.rb (+25 -3)
===================================================================
--- lib/droonga/engine_state.rb    2015-04-02 17:54:58 +0900 (6609fb9)
+++ lib/droonga/engine_state.rb    2015-04-02 18:34:38 +0900 (a596e9f)
@@ -66,8 +66,30 @@ module Droonga
       route.start_with?(@name) or route.start_with?(@internal_name)
     end
 
-    def actual_route(route)
-      if /\A[^:]+:\d+\/[^.]+/ =~ route
+    FARM_PATH_MATCHER = /\A[^:]+:\d+\/[^.]+/
+
+    def internal_route(route)
+      if FARM_PATH_MATCHER =~ route
+        name = $MATCH
+        if name == @name or name == @internal_name
+          return route.sub(name, @internal_name)
+        end
+      end
+      route
+    end
+
+    def public_route(route)
+      if FARM_PATH_MATCHER =~ route
+        name = $MATCH
+        if name == @internal_name
+          return route.sub(name, @name)
+        end
+      end
+      route
+    end
+
+    def internal_farm_path(route)
+      if FARM_PATH_MATCHER =~ route
         name = $MATCH
         if name == @name or name == @internal_name
           @internal_name
@@ -80,7 +102,7 @@ module Droonga
     end
 
     def farm_path(route)
-      if /\A[^:]+:\d+\/[^.]+/ =~ route
+      if FARM_PATH_MATCHER =~ route
         name = $MATCH
         if name == @internal_name
           @name
-------------- next part --------------
HTML����������������������������...
Descargar 



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