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����������������������������...下载