Navigation Menu

Skip to content

Commit

Permalink
Add option to skip copy
Browse files Browse the repository at this point in the history
  • Loading branch information
piroor committed Jun 27, 2014
1 parent b155b66 commit 3455032
Showing 1 changed file with 29 additions and 22 deletions.
51 changes: 29 additions & 22 deletions bin/droonga-engine-join
Expand Up @@ -31,6 +31,7 @@ options = OpenStruct.new
options.base_dir = ENV[Droonga::Path::BASE_DIR_ENV_NAME] || Dir.pwd
options.drndump = "drndump"
options.client = "droonga-request"
options.copy = true

parser = OptionParser.new
parser.version = Droonga::Engine::VERSION
Expand All @@ -41,6 +42,12 @@ parser.on("--base-dir=PATH",
options.base_dir = path
end

parser.on("--[no-]copy",
"Do or don't copy data from the source cluster.",
"(#{options.copy})") do |copy|
options.copy = copy
end

parser.separator("")
parser.separator("Connections:")
parser.on("--replica-source-host=HOST",
Expand Down Expand Up @@ -106,30 +113,30 @@ unless options.dataset
"--replica-source-host option."
end

puts "Initializing new replica..."

destination_params = Marshal.load(Marshal.dump(dataset_params))
destination_params[options.dataset][:hosts] = [options.my_host]
destination_catalog = Droonga::CatalogGenerator.generate(destination_params)
Droonga::SafeFileWriter.write(catalog_path, JSON.pretty_generate(destination_catalog))

sleep(1) # wait for restart

puts "Duplicating replica..."

Droonga::DataAbsorber.absorb(:drndump => options.drndump,
:client => options.client,
:dataset => options.dataset,
:source_host => options.replica_source_host,
:destination_host => options.my_host,
:port => options.port,
:tag => options.tag) do |dump|
puts dump
if options.copy
puts "Initializing replica..."

destination_params = Marshal.load(Marshal.dump(dataset_params))
destination_params[options.dataset][:hosts] = [options.my_host]
destination_catalog = Droonga::CatalogGenerator.generate(destination_params)
Droonga::SafeFileWriter.write(catalog_path, JSON.pretty_generate(destination_catalog))

sleep(1) # wait for restart

puts "Copying data..."
Droonga::DataAbsorber.absorb(:drndump => options.drndump,
:client => options.client,
:dataset => options.dataset,
:source_host => options.replica_source_host,
:destination_host => options.my_host,
:port => options.port,
:tag => options.tag) do |dump|
puts dump
end
sleep(1)
end

sleep(1)

puts "Restarting new replica..."
puts "Restarting replica..."

final_params = Marshal.load(Marshal.dump(dataset_params))
final_params[options.dataset][:hosts] += [options.my_host]
Expand Down

0 comments on commit 3455032

Please sign in to comment.