diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a1168430f..87b3153f2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,7 @@ * [ENHANCEMENT] Store Gateway: Add config `estimated_max_series_size_bytes` and `estimated_max_chunk_size_bytes` to address data overfetch. #5401 * [ENHANCEMENT] Distributor/Ingester: Add experimental `-distributor.sign_write_requests` flag to sign the write requests. #5430 * [ENHANCEMENT] Store Gateway/Querier/Compactor: Handling CMK Access Denied errors. #5420 #5442 #5446 +* [ENHANCEMENT] Store Gateway: Implementing multi level index cache. #5451 * [BUGFIX] Ruler: Validate if rule group can be safely converted back to rule group yaml from protobuf message #5265 * [BUGFIX] Querier: Convert gRPC `ResourceExhausted` status code from store gateway to 422 limit error. #5286 * [BUGFIX] Alertmanager: Route web-ui requests to the alertmanager distributor when sharding is enabled. #5293 diff --git a/docs/blocks-storage/querier.md b/docs/blocks-storage/querier.md index 8ed2ed7a60..75f88e546f 100644 --- a/docs/blocks-storage/querier.md +++ b/docs/blocks-storage/querier.md @@ -519,8 +519,9 @@ blocks_storage: [consistency_delay: | default = 0s] index_cache: - # The index cache backend type. Supported values: inmemory, memcached, - # redis. + # The index cache backend type. Multiple cache backend can be provided as + # a comma-separated ordered list to enable the implementation of a cache + # hierarchy. Supported values: inmemory, memcached, redis. # CLI flag: -blocks-storage.bucket-store.index-cache.backend [backend: | default = "inmemory"] diff --git a/docs/blocks-storage/store-gateway.md b/docs/blocks-storage/store-gateway.md index 2a0d6d950d..83c1fdbe7b 100644 --- a/docs/blocks-storage/store-gateway.md +++ b/docs/blocks-storage/store-gateway.md @@ -606,8 +606,9 @@ blocks_storage: [consistency_delay: | default = 0s] index_cache: - # The index cache backend type. Supported values: inmemory, memcached, - # redis. + # The index cache backend type. Multiple cache backend can be provided as + # a comma-separated ordered list to enable the implementation of a cache + # hierarchy. Supported values: inmemory, memcached, redis. # CLI flag: -blocks-storage.bucket-store.index-cache.backend [backend: | default = "inmemory"] diff --git a/docs/configuration/config-file-reference.md b/docs/configuration/config-file-reference.md index d5bcea224c..2b28e3adc5 100644 --- a/docs/configuration/config-file-reference.md +++ b/docs/configuration/config-file-reference.md @@ -1045,8 +1045,9 @@ bucket_store: [consistency_delay: | default = 0s] index_cache: - # The index cache backend type. Supported values: inmemory, memcached, - # redis. + # The index cache backend type. Multiple cache backend can be provided as a + # comma-separated ordered list to enable the implementation of a cache + # hierarchy. Supported values: inmemory, memcached, redis. # CLI flag: -blocks-storage.bucket-store.index-cache.backend [backend: | default = "inmemory"] diff --git a/pkg/storage/tsdb/index_cache.go b/pkg/storage/tsdb/index_cache.go index 231c03bd2d..1f1825fcc8 100644 --- a/pkg/storage/tsdb/index_cache.go +++ b/pkg/storage/tsdb/index_cache.go @@ -51,7 +51,10 @@ func (cfg *IndexCacheConfig) RegisterFlags(f *flag.FlagSet) { } func (cfg *IndexCacheConfig) RegisterFlagsWithPrefix(f *flag.FlagSet, prefix string) { - f.StringVar(&cfg.Backend, prefix+"backend", IndexCacheBackendDefault, fmt.Sprintf("The index cache backend type. Supported values: %s.", strings.Join(supportedIndexCacheBackends, ", "))) + f.StringVar(&cfg.Backend, prefix+"backend", IndexCacheBackendDefault, fmt.Sprintf("The index cache backend type. " + + "Multiple cache backend can be provided as a comma-separated ordered list to enable the implementation of a cache hierarchy. " + + "Supported values: %s.", + strings.Join(supportedIndexCacheBackends, ", "))) cfg.InMemory.RegisterFlagsWithPrefix(f, prefix+"inmemory.") cfg.Memcached.RegisterFlagsWithPrefix(f, prefix+"memcached.")