Skip to content

Commit

Permalink
perf(blooms): Use jumpmap for client side sharding of the filter requ…
Browse files Browse the repository at this point in the history
…ests (#12470)

**What this PR does / why we need it**:

Use the same client-side sharding mechanism for bloom gateway filter requests that we use for client side sharding in the memcached client.

This uses DNS discovery to resolve a list of addresses uses as buckets for the jumphash algorithm to shard GroupedChunkRefs across bloom gateway servers.
The ring component is still part of the bloom gateway, but it is not used any more.


**Special notes for your reviewer**:

https://arxiv.org/pdf/1406.2294.pdf

Signed-off-by: Christian Haudum <[email protected]>
Co-authored-by: Owen Diehl <[email protected]>
  • Loading branch information
chaudum and owen-d authored Apr 5, 2024
1 parent 3ece2ea commit 58c8c61
Show file tree
Hide file tree
Showing 11 changed files with 286 additions and 533 deletions.
18 changes: 15 additions & 3 deletions docs/sources/configure/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2089,11 +2089,18 @@ ring:
client:
# Configures the behavior of the connection pool.
pool_config:
[client_cleanup_period: <duration>]
# How frequently to clean up clients for servers that have gone away or are
# unhealthy.
# CLI flag: -bloom-gateway-client.pool.check-interval
[check_interval: <duration> | default = 10s]
[health_check_ingesters: <boolean>]
# Run a health check on each server during periodic cleanup.
# CLI flag: -bloom-gateway-client.pool.enable-health-check
[enable_health_check: <boolean> | default = true]
[remote_timeout: <duration>]
# Timeout for the health check if health check is enabled.
# CLI flag: -bloom-gateway-client.pool.health-check-timeout
[health_check_timeout: <duration> | default = 1s]
# The grpc_client block configures the gRPC client used to communicate between
# two Loki components.
Expand All @@ -2116,6 +2123,11 @@ client:
# CLI flag: -bloom-gateway-client.cache_results
[cache_results: <boolean> | default = false]
# Comma separated addresses list in DNS Service Discovery format:
# https://grafana.com/docs/mimir/latest/configure/about-dns-service-discovery/#supported-discovery-modes
# CLI flag: -bloom-gateway-client.addresses
[addresses: <string> | default = ""]
# Number of workers to use for filtering chunks concurrently.
# CLI flag: -bloom-gateway.worker-concurrency
[worker_concurrency: <int> | default = 4]
Expand Down
Loading

0 comments on commit 58c8c61

Please sign in to comment.