Module: Replication

Included in:
Bdb::Environment
Defined in:
lib/bdb/replication.rb

Constant Summary collapse

DEFAULT_PORT =
3463
NUM_THREADS =
1
ACK_POLICY =
{
  :all       => Bdb::DB_REPMGR_ACKS_ALL,
  :all_peers => Bdb::DB_REPMGR_ACKS_ALL_PEERS,
  :none      => Bdb::DB_REPMGR_ACKS_NONE,
  :one       => Bdb::DB_REPMGR_ACKS_ONE,
  :one_peer  => Bdb::DB_REPMGR_ACKS_ONE_PEER,
  :quorom    => Bdb::DB_REPMGR_ACKS_QUORUM,
}

Instance Method Summary collapse

Instance Method Details

#master?Boolean


19
20
21
# File 'lib/bdb/replication.rb', line 19

def master?
  not replicate? or replicate[:master]
end

#replicate(opts = nil) ⇒ Object


23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/bdb/replication.rb', line 23

def replicate(opts = nil)
  return @replicate if opts.nil?

  master  = normalize_host(opts.delete(:from))
  clients = [*opts.delete(:to)].compact.collect {|h| normalize_host(h)}
  local   = normalize_host(opts.delete(:host) || ENV['BDB_REPLICATION_HOST'], opts.delete(:port))
  remote  = clients + [master] - [local]

  opts[:master] = (local == master)
  opts[:local]  = local
  opts[:remote] = remote
  opts[:num_threads] ||= NUM_THREADS
  @replicate = opts

  env
end

#replicate?Boolean


15
16
17
# File 'lib/bdb/replication.rb', line 15

def replicate?
  not @replicate.nil?
end