[Groonga-commit] droonga/wikipedia-search at bc9678c [master] Create base directory for each deroong engine

Back to archive index

Kouhei Sutou null+****@clear*****
Wed May 21 16:23:03 JST 2014


Kouhei Sutou	2014-05-21 16:23:03 +0900 (Wed, 21 May 2014)

  New Revision: bc9678ccf45c2fb6823c19cec59ec15e446d2fd5
  https://github.com/droonga/wikipedia-search/commit/bc9678ccf45c2fb6823c19cec59ec15e446d2fd5

  Message:
    Create base directory for each deroong engine

  Modified files:
    lib/wikipedia-search/path.rb
    lib/wikipedia-search/task.rb

  Modified: lib/wikipedia-search/path.rb (+6 -2)
===================================================================
--- lib/wikipedia-search/path.rb    2014-05-21 15:47:04 +0900 (976dc8d)
+++ lib/wikipedia-search/path.rb    2014-05-21 16:23:03 +0900 (7b8bbeb)
@@ -136,8 +136,12 @@ module WikipediaSearch
       data_dir + "wikipedia"
     end
 
-    def catalog
-      working_dir + "catalog.json"
+    def node_working_dir(node_id)
+      working_dir + node_id.to_s
+    end
+
+    def catalog(node_id)
+      node_working_dir(node_id) + "catalog.json"
     end
   end
 end

  Modified: lib/wikipedia-search/task.rb (+28 -17)
===================================================================
--- lib/wikipedia-search/task.rb    2014-05-21 15:47:04 +0900 (255da42)
+++ lib/wikipedia-search/task.rb    2014-05-21 16:23:03 +0900 (a7b2a15)
@@ -163,21 +163,25 @@ module WikipediaSearch
         ]
         desc "Load data."
         task :load => load_dependencies do
-          rm_rf(@path.droonga.working_dir.to_s)
-          mkdir_p(@path.droonga.working_dir.to_s)
-
-          droonga_generate_catalog(node_ids)
-
           pids = []
           begin
             node_ids.each do |node_id|
+              working_dir =****@path*****_working_dir(node_id)
+              rm_rf(working_dir.to_s)
+              mkdir_p(working_dir.to_s)
+
+              droonga_generate_catalog(node_id, node_ids)
+
               pids << droonga_run_engine(node_id)
             end
+            node_ids.each do |node_id|
+              droonga_wait_engine_ready(node_id)
+            end
             front_node_id = node_ids.first
-            droonga_wait_engine_ready(front_node_id)
+            host = droonga_host(front_node_id)
             port = droonga_port(front_node_id)
             sh("droonga-send",
-               "--server", "droonga:127.0.0.1:#{port}/droonga",
+               "--server", "droonga:#{host}:#{port}/droonga",
                "--report-throughput",
                @path.droonga.pages.to_s)
           ensure
@@ -193,8 +197,9 @@ module WikipediaSearch
           begin
             node_ids.each do |node_id|
               pids << droonga_run_engine(node_id)
+              host = droonga_host(node_id)
               port = droonga_port(node_id)
-              puts("127.0.0.1:#{port}/droonga")
+              puts("#{host}:#{port}/droonga")
             end
             front_node_id = node_ids.first
             pids << droonga_run_protocol_adapter(front_node_id)
@@ -209,19 +214,24 @@ module WikipediaSearch
       end
     end
 
+    def droonga_host(node_id)
+      "127.0.0.#{100 + node_id}"
+    end
+
     def droonga_port(node_id)
       24000 + node_id
     end
 
-    def droonga_generate_catalog(node_ids)
-      replicas_path =****@path*****_dir + "replicas.json"
+    def droonga_generate_catalog(node_id, node_ids)
+      replicas_path =****@path*****_working_dir(node_id) + "replicas.json"
       replicas_path.open("w") do |replicas_file|
         replicas = 2.times.collect do |i|
           slices = node_ids.collect do |node_id|
+            host = droonga_host(node_id)
             port = droonga_port(node_id)
             {
               "volume" => {
-                "address" => "127.0.0.1:#{port}/droonga.#{i}#{node_id}"
+                "address" => "#{host}:#{port}/droonga.#{i}#{node_id}"
               }
             }
           end
@@ -231,8 +241,8 @@ module WikipediaSearch
         end
         replicas_file.puts(JSON.pretty_generate(replicas))
       end
-      sh("droonga-catalog-generate",
-         "--output", @path.droonga.catalog.to_s,
+      sh("droonga-engine-catalog-generate",
+         "--output", @path.droonga.catalog(node_id).to_s,
          "--dataset", "Wikipedia",
          "--n-workers", "3",
          "--schema", @path.droonga.schema.to_s,
@@ -242,10 +252,10 @@ module WikipediaSearch
 
     def droonga_run_engine(node_id)
       spawn("droonga-engine",
-            "--host", "127.0.0.1",
+            "--host", droonga_host(node_id),
             "--port", droonga_port(node_id).to_s,
             "--tag", "droonga",
-            :chdir => @path.droonga.working_dir.to_s)
+            :chdir => @path.droonga.node_working_dir(node_id).to_s)
     end
 
     def droonga_run_protocol_adapter(node_id)
@@ -255,10 +265,11 @@ module WikipediaSearch
     end
 
     def droonga_wait_engine_ready(node_id)
+      host = droonga_host(node_id)
       port = droonga_port(node_id)
-      3.times do
+      60.times do
         begin
-          TCPSocket.new("127.0.0.1", port)
+          TCPSocket.new(host, port)
         rescue SystemCallError
           sleep(1)
         end
-------------- next part --------------
HTML����������������������������...
下载 



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