[Groonga-commit] droonga/droonga-engine at 9b0c9a5 [master] Add codes to use live nodes list for dispatching

Back to archive index

YUKI Hiroshi null+****@clear*****
Fri May 9 14:01:18 JST 2014


YUKI Hiroshi	2014-05-09 14:01:18 +0900 (Fri, 09 May 2014)

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

  Message:
    Add codes to use live nodes list for dispatching

  Modified files:
    lib/droonga/catalog/dataset.rb
    lib/droonga/catalog/version1.rb
    lib/droonga/dispatcher.rb
    lib/droonga/live_nodes_list_loader.rb

  Modified: lib/droonga/catalog/dataset.rb (+3 -3)
===================================================================
--- lib/droonga/catalog/dataset.rb    2014-05-09 13:47:41 +0900 (9d2bbb3)
+++ lib/droonga/catalog/dataset.rb    2014-05-09 14:01:18 +0900 (36a6def)
@@ -62,11 +62,11 @@ module Droonga
         @all_nodes ||= replicas.all_nodes
       end
 
-      def get_routes(args)
+      def get_routes(args, live_nodes=nil)
         routes = []
         case args["type"]
         when "broadcast"
-          volumes = replicas.select(args["replica"].to_sym, args["live_nodes"])
+          volumes = replicas.select(args["replica"].to_sym, live_nodes)
           volumes.each do |volume|
             slices = volume.select_slices
             slices.each do |slice|
@@ -74,7 +74,7 @@ module Droonga
             end
           end
         when "scatter"
-          volumes = replicas.select(args["replica"].to_sym, args["live_nodes"])
+          volumes = replicas.select(args["replica"].to_sym, live_nodes)
           volumes.each do |volume|
             slice = volume.choose_slice(args["record"])
             routes << slice.volume.address

  Modified: lib/droonga/catalog/version1.rb (+1 -1)
===================================================================
--- lib/droonga/catalog/version1.rb    2014-05-09 13:47:41 +0900 (390e93e)
+++ lib/droonga/catalog/version1.rb    2014-05-09 14:01:18 +0900 (a0a3168)
@@ -386,7 +386,7 @@ module Droonga
       end
 
       class Dataset < Catalog::Dataset
-        def get_routes(args)
+        def get_routes(args, live_nodes=nil)
           routes = []
           case args["type"]
           when "broadcast"

  Modified: lib/droonga/dispatcher.rb (+3 -1)
===================================================================
--- lib/droonga/dispatcher.rb    2014-05-09 13:47:41 +0900 (3b52117)
+++ lib/droonga/dispatcher.rb    2014-05-09 14:01:18 +0900 (309fc97)
@@ -24,6 +24,7 @@ require "droonga/farm"
 require "droonga/session"
 require "droonga/error_messages"
 require "droonga/distributor"
+require "droonga/live_nodes_list_loader"
 
 module Droonga
   class Dispatcher
@@ -57,6 +58,7 @@ module Droonga
       @step_runners = create_step_runners
       @forwarder = @engine_state.forwarder
       @replier = @engine_state.replier
+      # @live_nodes = LiveNodesListLoader.load
     end
 
     def start
@@ -169,7 +171,7 @@ module Droonga
       steps.each do |step|
         dataset =****@catal*****(step["dataset"])
         if dataset
-          routes = dataset.get_routes(step)
+          routes = dataset.get_routes(step, @live_nodes)
           step["routes"] = routes
         else
           step["routes"] ||= [id]

  Modified: lib/droonga/live_nodes_list_loader.rb (+6 -0)
===================================================================
--- lib/droonga/live_nodes_list_loader.rb    2014-05-09 13:47:41 +0900 (1656f7d)
+++ lib/droonga/live_nodes_list_loader.rb    2014-05-09 14:01:18 +0900 (467b416)
@@ -18,6 +18,12 @@ require "json"
 
 module Droonga
   class LiveNodesListLoader
+    class << self
+      def load
+        new.load
+      end
+    end
+
     DEFAULT_LIST_PATH = "live-nodes.json"
 
     def base_path
-------------- next part --------------
HTML����������������������������...
下載 



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