# Functions
GetShuffleShardingSubring returns the subring to be used for a given user.
NewBucketStores makes a new BucketStores.
NewDefaultShardingStrategy creates DefaultShardingStrategy.
NewIgnoreDeletionMarkFilter creates IgnoreDeletionMarkFilter.
NewReplicaLabelRemover creates a ReplicaLabelRemover.
NewShuffleShardingStrategy makes a new ShuffleShardingStrategy.
# Constants
RingKey is the key under which we store the store gateways ring in the KVStore.
RingNameForClient is the name of the ring used by the store gateway client (we need a different name to avoid clashing Prometheus metrics when running in single-binary).
RingNameForServer is the name of the ring used by the store gateway server.
We use a safe default instead of exposing to config option to the user in order to simplify the config.
# Variables
BlocksOwnerRead is the operation used to check the authoritative owners of a block (replicas included) that are available for queries (a store-gateway is available for queries only when ACTIVE).
BlocksOwnerSync is the operation used to check the authoritative owners of a block (replicas included).
BlocksRead is the operation run by the querier to query blocks via the store-gateway.
# Structs
BucketIndexMetadataFetcher is a Thanos MetadataFetcher implementation leveraging on the Cortex bucket index.
BucketStoreMetrics aggregates metrics exported by Thanos Bucket Store and re-exports those aggregates as Cortex metrics.
BucketStores is a multi-tenant wrapper of Thanos BucketStore.
Config holds the store gateway config.
DefaultShardingStrategy is a sharding strategy based on the hash ring formed by store-gateways.
IgnoreDeletionMarkFilter is like the Thanos IgnoreDeletionMarkFilter, but it also implements the MetadataFilterWithBucketIndex interface.
IgnoreNonQueryableBlocksFilter ignores blocks that are too new be queried.
This struct aggregates metrics exported by Thanos MetaFetcher and re-exports those aggregates as Cortex metrics.
NoShardingStrategy is a no-op strategy.
ReplicaLabelRemover is a BaseFetcher modifier modifies external labels of existing blocks, it removes given replica labels from the metadata of blocks that have it.
RingConfig masks the ring lifecycler config which contains many options not really required by the store gateways ring.
ShuffleShardingStrategy is a shuffle sharding strategy, based on the hash ring formed by store-gateways, where each tenant blocks are sharded across a subset of store-gateway instances.
StoreGateway is the Cortex service responsible to expose an API over the bucket where blocks are stored, supporting blocks sharding and replication across a pool of store gateway instances (optional).
# Interfaces
ShardingLimits is the interface that should be implemented by the limits provider, limiting the scope of the limits to the ones required by sharding strategies.