diff --git a/config/README.md b/config/README.md index f04758fcaeb6a6065c11da26282877ca44f1365b..2ba6df40f1b1022ebcfba4b23c43b69e7fbd64b1 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 a3fe4935fdf556a19c1a63898496870434b061ca..f02aa5723ec2f8b651f104cb11b982fa3e8863d0 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 8857b544364863a05c59df1f2b47728b96e8226a..ed4f60156034feeb3beebeea0fb92300803151c6 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 0000000000000000000000000000000000000000..61eaf701e42336dc4b2efa21ad31a0f272fbcc36 --- /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 0000000000000000000000000000000000000000..72ba5647a410c86379d0ade607d695683856ef51 --- /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