Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/database/load_balancing/rack_middleware.rb')
-rw-r--r--lib/gitlab/database/load_balancing/rack_middleware.rb10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/gitlab/database/load_balancing/rack_middleware.rb b/lib/gitlab/database/load_balancing/rack_middleware.rb
index 99b1c31b04b..554205c8dcc 100644
--- a/lib/gitlab/database/load_balancing/rack_middleware.rb
+++ b/lib/gitlab/database/load_balancing/rack_middleware.rb
@@ -18,7 +18,7 @@ module Gitlab
# doesn't linger around.
clear
- unstick_or_continue_sticking(env)
+ find_caught_up_replica(env)
result = @app.call(env)
@@ -35,20 +35,22 @@ module Gitlab
#
# Typically this code will only be reachable for Rails requests as
# Grape data is not yet available at this point.
- def unstick_or_continue_sticking(env)
+ def find_caught_up_replica(env)
namespaces_and_ids = sticking_namespaces(env)
namespaces_and_ids.each do |(sticking, namespace, id)|
- sticking.unstick_or_continue_sticking(namespace, id)
+ sticking.find_caught_up_replica(namespace, id)
end
end
# Determine if we need to stick after handling a request.
def stick_if_necessary(env)
+ return unless ::Gitlab::Database::LoadBalancing::Session.current.performed_write?
+
namespaces_and_ids = sticking_namespaces(env)
namespaces_and_ids.each do |sticking, namespace, id|
- sticking.stick_if_necessary(namespace, id)
+ sticking.stick(namespace, id)
end
end