summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Cai <jcai@gitlab.com>2019-04-17 15:16:35 -0700
committerJohn Cai <jcai@gitlab.com>2019-04-17 17:03:52 -0700
commit86a65edf922f87bb56503d1027a92cc795890fa8 (patch)
tree3ecc4b9f17733d9c8bc0f8641feef321783e0a8c
parentce02daea08c4cc7bc5e65e56f9b3d744a2e1faa6 (diff)
downloadgitlab-ce-jc-client-gitaly-session-id.tar.gz
Add gitaly session idjc-client-gitaly-session-id
-rw-r--r--changelogs/unreleased/jc-client-gitaly-session-id.yml5
-rw-r--r--lib/gitlab/gitaly_client.rb9
2 files changed, 13 insertions, 1 deletions
diff --git a/changelogs/unreleased/jc-client-gitaly-session-id.yml b/changelogs/unreleased/jc-client-gitaly-session-id.yml
new file mode 100644
index 00000000000..ae5b7144b98
--- /dev/null
+++ b/changelogs/unreleased/jc-client-gitaly-session-id.yml
@@ -0,0 +1,5 @@
+---
+title: Add gitaly session id & catfile-cache feature flag
+merge_request: 27472
+author:
+type: performance
diff --git a/lib/gitlab/gitaly_client.rb b/lib/gitlab/gitaly_client.rb
index 726c4d95da9..7f20d03d0ac 100644
--- a/lib/gitlab/gitaly_client.rb
+++ b/lib/gitlab/gitaly_client.rb
@@ -219,6 +219,7 @@ module Gitlab
metadata['call_site'] = feature.to_s if feature
metadata['gitaly-servers'] = address_metadata(remote_storage) if remote_storage
metadata['x-gitlab-correlation-id'] = Gitlab::CorrelationId.current_id if Gitlab::CorrelationId.current_id
+ metadata['gitaly-session-id'] = session_id unless session_id.nil?
metadata.merge!(server_feature_flags)
@@ -235,7 +236,13 @@ module Gitlab
result
end
- SERVER_FEATURE_FLAGS = %w[].freeze
+ def self.session_id
+ return unless feature_enabled?('catfile-cache')
+
+ Gitlab::SafeRequestStore.store[:gitaly_session_id] ||= SecureRandom.uuid
+ end
+
+ SERVER_FEATURE_FLAGS = %w[catfile-cache].freeze
def self.server_feature_flags
SERVER_FEATURE_FLAGS.map do |f|