Module: Gitlab::Database::LoadBalancing
- Defined in:
- lib/gitlab/database/load_balancing.rb,
lib/gitlab/database/load_balancing/host.rb,
lib/gitlab/database/load_balancing/setup.rb,
lib/gitlab/database/load_balancing/logger.rb,
lib/gitlab/database/load_balancing/session.rb,
lib/gitlab/database/load_balancing/resolver.rb,
lib/gitlab/database/load_balancing/sticking.rb,
lib/gitlab/database/load_balancing/host_list.rb,
lib/gitlab/database/load_balancing/session_map.rb,
lib/gitlab/database/load_balancing/primary_host.rb,
lib/gitlab/database/load_balancing/srv_resolver.rb,
lib/gitlab/database/load_balancing/configuration.rb,
lib/gitlab/database/load_balancing/load_balancer.rb,
lib/gitlab/database/load_balancing/rack_middleware.rb,
lib/gitlab/database/load_balancing/connection_proxy.rb,
lib/gitlab/database/load_balancing/service_discovery.rb,
lib/gitlab/database/load_balancing/wal_tracking_sender.rb,
lib/gitlab/database/load_balancing/wal_tracking_receiver.rb,
lib/gitlab/database/load_balancing/action_cable_callbacks.rb,
lib/gitlab/database/load_balancing/service_discovery/sampler.rb,
lib/gitlab/database/load_balancing/sidekiq_client_middleware.rb,
lib/gitlab/database/load_balancing/sidekiq_server_middleware.rb
Defined Under Namespace
Modules: ActionCableCallbacks, WalTrackingReceiver, WalTrackingSender
Classes: Configuration, ConnectionProxy, Host, HostList, LoadBalancer, Logger, PrimaryHost, RackMiddleware, Resolver, ScopedSessions, ServiceDiscovery, Session, SessionMap, Setup, SidekiqClientMiddleware, SidekiqServerMiddleware, SrvResolver, Sticking
Constant Summary
collapse
- CONNECTION_ERRORS =
The exceptions raised for connection errors.
[
PG::ConnectionBad,
PG::ConnectionDoesNotExist,
PG::ConnectionException,
PG::ConnectionFailure,
PG::UnableToSend,
PG::ReadOnlySqlTransaction,
ActiveRecord::ConnectionNotEstablished
].freeze
- DB_ROLES =
[
ROLE_PRIMARY = :primary,
ROLE_REPLICA = :replica,
ROLE_UNKNOWN = :unknown
].freeze
Class Method Summary
collapse
Class Method Details
.db_role_for_connection(connection) ⇒ Object
Returns the role (primary/replica) of the database the connection is connecting to.
.each_load_balancer ⇒ Object
25
26
27
28
29
30
31
|
# File 'lib/gitlab/database/load_balancing.rb', line 25
def self.each_load_balancer
return to_enum(__method__) unless block_given?
base_models.each do |model|
yield model.load_balancer
end
end
|
.primary?(name) ⇒ Boolean
37
38
39
|
# File 'lib/gitlab/database/load_balancing.rb', line 37
def self.primary?(name)
each_load_balancer.find { |c| c.name == name }&.primary_only?
end
|
.primary_only? ⇒ Boolean
33
34
35
|
# File 'lib/gitlab/database/load_balancing.rb', line 33
def self.primary_only?
each_load_balancer.all?(&:primary_only?)
end
|
.release_hosts ⇒ Object
41
42
43
|
# File 'lib/gitlab/database/load_balancing.rb', line 41
def self.release_hosts
each_load_balancer(&:release_host)
end
|