[Groonga-commit] droonga/fluent-plugin-droonga at c7a71d3 [graceful-restart-on-catalog-update] Pass catalog to engine explicitly

Back to archive index

Yoji Shidara null+****@clear*****
Thu Feb 13 15:29:05 JST 2014


Yoji Shidara	2014-02-13 15:29:05 +0900 (Thu, 13 Feb 2014)

  New Revision: c7a71d3d98be5226d129d27a9f81261cc96b9bce
  https://github.com/droonga/fluent-plugin-droonga/commit/c7a71d3d98be5226d129d27a9f81261cc96b9bce

  Message:
    Pass catalog to engine explicitly

  Modified files:
    lib/droonga/dispatcher.rb
    lib/droonga/engine.rb
    lib/droonga/farm.rb
    lib/fluent/plugin/out_droonga.rb

  Modified: lib/droonga/dispatcher.rb (+6 -8)
===================================================================
--- lib/droonga/dispatcher.rb    2014-02-13 15:19:24 +0900 (d2cc8ac)
+++ lib/droonga/dispatcher.rb    2014-02-13 15:29:05 +0900 (24c8b79)
@@ -18,13 +18,11 @@ require "tsort"
 
 require "droonga/adapter_runner"
 require "droonga/planner"
-require "droonga/catalog"
 require "droonga/collector"
 require "droonga/farm"
 require "droonga/session"
 require "droonga/replier"
 require "droonga/message_processing_error"
-require "droonga/catalog_observer"
 require "droonga/distributor"
 
 module Droonga
@@ -50,16 +48,16 @@ module Droonga
       end
     end
 
-    def initialize(options)
+    def initialize(catalog, options)
+      @catalog = catalog
       @options = options
       @name = @options[:name]
       @loop = EventLoop.new
-      @catalog_observer = CatalogObserver.new(@loop)
       @sessions = {}
       @current_id = 0
       @local = Regexp.new("^#{@name}")
       @adapter_runners = create_adapter_runners
-      @farm = Farm.new(name, @loop, :dispatcher => self)
+      @farm = Farm.new(name, @catalog, @loop, :dispatcher => self)
       @forwarder = Forwarder.new(@loop)
       @replier = Replier.new(@forwarder)
       # TODO: make customizable
@@ -172,7 +170,7 @@ module Droonga
       steps.each do |step|
         dataset = step["dataset"]
         if dataset
-          routes = Droonga.catalog.get_routes(dataset, step)
+          routes =****@catal*****_routes(dataset, step)
           step["routes"] = routes
         else
           step["routes"] ||= [id]
@@ -240,14 +238,14 @@ module Droonga
         raise MissingDatasetParameter.new
       end
       dataset = message["dataset"]
-      unless Droonga.catalog.have_dataset?(dataset)
+      unles****@catal*****_dataset?(dataset)
         raise UnknownDataset.new(dataset)
       end
     end
 
     def create_adapter_runners
       runners = {}
-      Droonga.catalog.datasets.each do |name, configuration|
+      @catalog.datasets.each do |name, configuration|
         runners[name] = AdapterRunner.new(self, configuration["plugins"] || [])
       end
       runners

  Modified: lib/droonga/engine.rb (+3 -2)
===================================================================
--- lib/droonga/engine.rb    2014-02-13 15:19:24 +0900 (124c38d)
+++ lib/droonga/engine.rb    2014-02-13 15:29:05 +0900 (ea5c1f1)
@@ -20,9 +20,10 @@ require "droonga/dispatcher"
 
 module Droonga
   class Engine
-    def initialize(options={})
+    def initialize(catalog, options={})
+      @catalog = catalog
       @options = options
-      @dispatcher = Dispatcher.new(@options)
+      @dispatcher = Dispatcher.new(@catalog, @options)
     end
 
     def start

  Modified: lib/droonga/farm.rb (+3 -2)
===================================================================
--- lib/droonga/farm.rb    2014-02-13 15:19:24 +0900 (21b4787)
+++ lib/droonga/farm.rb    2014-02-13 15:29:05 +0900 (96aeddc)
@@ -19,12 +19,13 @@ require "droonga/partition"
 
 module Droonga
   class Farm
-    def initialize(name, loop, options={})
+    def initialize(name, catalog, loop, options={})
       @name = name
+      @catalog = catalog
       @loop = loop
       @options = options
       @partitions = {}
-      partitions = Droonga.catalog.get_partitions(name)
+      partitions =****@catal*****_partitions(name)
       partitions.each do |partition_name, partition_options|
         partition = Droonga::Partition.new(@loop,
                                            @options.merge(partition_options))

  Modified: lib/fluent/plugin/out_droonga.rb (+7 -1)
===================================================================
--- lib/fluent/plugin/out_droonga.rb    2014-02-13 15:19:24 +0900 (cad8f79)
+++ lib/fluent/plugin/out_droonga.rb    2014-02-13 15:29:05 +0900 (348b104)
@@ -17,6 +17,7 @@
 
 require "droonga/engine"
 require "droonga/plugin_loader"
+require "droonga/catalog_loader"
 
 module Fluent
   class DroongaOutput < Output
@@ -27,7 +28,7 @@ module Fluent
     def start
       super
       Droonga::PluginLoader.load_all
-      @engine = Droonga::Engine.new(:name => @name)
+      @engine = Droonga::Engine.new(catalog, :name => @name)
       @engine.start
     end
 
@@ -44,6 +45,11 @@ module Fluent
     end
 
     private
+    def catalog
+      catalog_loader = Droonga::CatalogLoader.new("catalog.json")
+      catalog_loader.load
+    end
+
     def process_event(tag, record)
       $log.trace("out_droonga: tag: <#{tag}>")
       @engine.process(parse_record(tag, record))
-------------- next part --------------
HTML����������������������������...
Download 



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