From a0631d7ccd44c48c4bec4546e38883cd0bcc49c5 Mon Sep 17 00:00:00 2001 From: Gregorius Marco <gmarco@gitlab.com> Date: Fri, 16 Dec 2022 14:59:24 +0700 Subject: [PATCH] Add Gitlab::Redis::RepositoryCache Redis instance This instance is used to store repository cache data from Repository model, which was previously stored in Gitlab::Redis::Cache. Changelog: changed --- config/README.md | 16 ++++++++-------- config/application.rb | 1 + lib/gitlab/redis.rb | 1 + lib/gitlab/redis/repository_cache.rb | 12 ++++++++++++ spec/lib/gitlab/redis/repository_cache_spec.rb | 7 +++++++ 5 files changed, 29 insertions(+), 8 deletions(-) create mode 100644 lib/gitlab/redis/repository_cache.rb create mode 100644 spec/lib/gitlab/redis/repository_cache_spec.rb diff --git a/config/README.md b/config/README.md index f04758fcaeb6a..2ba6df40f1b10 100644 --- a/config/README.md +++ b/config/README.md @@ -71,14 +71,14 @@ environment variable. An example configuration file for Redis is in this directory under the name `resque.yml.example`. -| Name | Fallback instance | Purpose | -| --- | --- | --- | -| `cache` | | Volatile non-persistent data | -| `queues` | | Background job processing queues | -| `shared_state` | | Persistent application state | -| `trace_chunks` | `shared_state` | [CI trace chunks](https://docs.gitlab.com/ee/administration/job_logs.html#incremental-logging-architecture) | -| `rate_limiting` | `cache` | [Rate limiting](https://docs.gitlab.com/ee/user/admin_area/settings/user_and_ip_rate_limits.html) state | -| `sessions` | `shared_state` | [Sessions](https://docs.gitlab.com/ee/development/session.html#redis)| +| Name | Fallback instance | Purpose | +|--------------------|-------------------|-------------------------------------------------------------------------------------------------------------| +| `cache` | | Volatile non-persistent data | +| `queues` | | Background job processing queues | +| `shared_state` | | Persistent application state | +| `trace_chunks` | `shared_state` | [CI trace chunks](https://docs.gitlab.com/ee/administration/job_logs.html#incremental-logging-architecture) | +| `rate_limiting` | `cache` | [Rate limiting](https://docs.gitlab.com/ee/user/admin_area/settings/user_and_ip_rate_limits.html) state | +| `sessions` | `shared_state` | [Sessions](https://docs.gitlab.com/ee/development/session.html#redis) | If no configuration is found, or no URL is found in the configuration file, the default URL used is: diff --git a/config/application.rb b/config/application.rb index a3fe4935fdf55..f02aa5723ec2f 100644 --- a/config/application.rb +++ b/config/application.rb @@ -59,6 +59,7 @@ class Application < Rails::Application require_dependency Rails.root.join('lib/gitlab/redis/trace_chunks') require_dependency Rails.root.join('lib/gitlab/redis/rate_limiting') require_dependency Rails.root.join('lib/gitlab/redis/sessions') + require_dependency Rails.root.join('lib/gitlab/redis/repository_cache') require_dependency Rails.root.join('lib/gitlab/current_settings') require_dependency Rails.root.join('lib/gitlab/middleware/read_only') require_dependency Rails.root.join('lib/gitlab/middleware/compressed_json') diff --git a/lib/gitlab/redis.rb b/lib/gitlab/redis.rb index 8857b54436486..ed4f60156034f 100644 --- a/lib/gitlab/redis.rb +++ b/lib/gitlab/redis.rb @@ -11,6 +11,7 @@ module Redis Gitlab::Redis::Cache, Gitlab::Redis::Queues, Gitlab::Redis::RateLimiting, + Gitlab::Redis::RepositoryCache, Gitlab::Redis::Sessions, Gitlab::Redis::SharedState, Gitlab::Redis::TraceChunks diff --git a/lib/gitlab/redis/repository_cache.rb b/lib/gitlab/redis/repository_cache.rb new file mode 100644 index 0000000000000..61eaf701e4233 --- /dev/null +++ b/lib/gitlab/redis/repository_cache.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module Gitlab + module Redis + class RepositoryCache < ::Gitlab::Redis::Wrapper + # The data we store on RepositoryCache used to be stored on Cache. + def self.config_fallback + Cache + end + end + end +end diff --git a/spec/lib/gitlab/redis/repository_cache_spec.rb b/spec/lib/gitlab/redis/repository_cache_spec.rb new file mode 100644 index 0000000000000..72ba5647a410c --- /dev/null +++ b/spec/lib/gitlab/redis/repository_cache_spec.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Gitlab::Redis::RepositoryCache, feature_category: :scalability do + include_examples "redis_new_instance_shared_examples", 'repository_cache', Gitlab::Redis::Cache +end -- GitLab