Module: Gitlab::Database::LoadBalancing::WalTrackingSender
- Defined in:
- lib/gitlab/database/load_balancing/wal_tracking_sender.rb
Instance Method Summary collapse
Instance Method Details
#wal_location_for(load_balancer) ⇒ Object
17 18 19 20 21 22 23 24 25 26 |
# File 'lib/gitlab/database/load_balancing/wal_tracking_sender.rb', line 17 def wal_location_for(load_balancer) # When only using the primary there's no need for any WAL queries. return if load_balancer.primary_only? if Session.current.use_primary? load_balancer.primary_write_location else load_balancer.host&.database_replica_location || load_balancer.primary_write_location end end |
#wal_locations_by_db_name ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/gitlab/database/load_balancing/wal_tracking_sender.rb', line 7 def wal_locations_by_db_name {}.tap do |locations| ::Gitlab::Database::LoadBalancing.each_load_balancer do |lb| if (location = wal_location_for(lb)) locations[lb.name] = location end end end end |