Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stream chunks from storegateway to queriers #5182

Merged
merged 85 commits into from
Jul 18, 2023
Merged
Show file tree
Hide file tree
Changes from 79 commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
fa4e1c9
Update protos for streaming
codesome Jun 6, 2023
1d8f18b
Send streaming chunks from store-gateway
codesome Jun 6, 2023
d8a29b7
Reuse postings
codesome Jun 7, 2023
8488231
Read streaming chunks from storegateway in queriers
codesome Jun 8, 2023
e2d189a
Fix lint
codesome Jun 8, 2023
8bc1d12
Test if streaming works by making it default
codesome Jun 8, 2023
40f4753
Do not ignore IsEndOfSeriesStream
codesome Jun 8, 2023
c321c2e
Remove the default streaming
codesome Jun 8, 2023
32d4bce
Extend testBucketStore_e2e to test streaming
codesome Jun 9, 2023
ca6ea7c
Merge branch 'main' into codesome/stream-store
codesome Jun 9, 2023
3054be1
Fix the case of wrong series in the 1st pass of streaming
codesome Jun 9, 2023
42c4e08
Use the streaming config for storegateway
codesome Jun 12, 2023
52d9c04
Updated unit tests for storegateway
codesome Jun 12, 2023
254b4e2
Send hints and stats back in right order. Unit tests in queriers.
codesome Jun 12, 2023
0ca67b9
Use streaming in TestBlocksStoreQuerier_PromQLExecution
codesome Jun 12, 2023
deafaa5
Lint
codesome Jun 12, 2023
6ea14a4
Fix tests
codesome Jun 12, 2023
05b9283
lint
codesome Jun 12, 2023
719b254
Actually pass down streaming batch size from querier to storegateway
codesome Jun 12, 2023
df0a7ea
Add unit tests. Quick self review.
codesome Jun 13, 2023
0f8c53c
Refactor Series function to make it smaller
codesome Jun 13, 2023
513c99b
Fix lint
codesome Jun 13, 2023
766e46f
Refactor to send of batches of chunks at a time
codesome Jun 13, 2023
725f759
lint
codesome Jun 13, 2023
391a8a6
goroutine leak
codesome Jun 13, 2023
3d11540
Fix most of Charles' comments
codesome Jun 14, 2023
21de938
Fix comments, fix stats, extend tests
codesome Jun 14, 2023
e22c08b
Improve tests to run streaming and non-streaming in any order
codesome Jun 14, 2023
5097990
Integration test
codesome Jun 14, 2023
d5d13be
Fix race
codesome Jun 15, 2023
2b2ce57
Integration test attempt 0
codesome Jun 15, 2023
ab258b4
Attempt
codesome Jun 15, 2023
656d2a4
Another attempt
codesome Jun 15, 2023
2ae1e9b
context.Background()
codesome Jun 15, 2023
351e514
q.ctx in queryWithConsistencyCheck
codesome Jun 15, 2023
de46d40
rollback some things
codesome Jun 15, 2023
969714b
Update integration test metrics with TODO
codesome Jun 16, 2023
07d63fe
Fix a bunch of comments
codesome Jun 18, 2023
0c3f75b
Add seriesIteratorStrategy
codesome Jun 18, 2023
c41ed54
Merge branch 'main' into codesome/stream-store
codesome Jun 19, 2023
9f7945b
Lint and stuff
codesome Jun 19, 2023
9f5188e
Fix goroutine leak
codesome Jun 19, 2023
47a90b6
Fix a race
codesome Jun 19, 2023
64ccb44
Fix unit test panic
codesome Jun 20, 2023
1720db0
Fix the use of seriesIteratorStrategy
codesome Jun 20, 2023
e545695
Merge branch 'main' into codesome/stream-store
codesome Jun 20, 2023
a51311f
Take care of tracing spans
codesome Jun 20, 2023
c76e560
Fix metrics in integration tests
codesome Jun 20, 2023
5115fc4
Fix flags
codesome Jun 21, 2023
afd6e26
Fix review comments
codesome Jun 21, 2023
09d2fbd
Fix more comments
codesome Jun 21, 2023
fa463f3
Optimise streaming of chunks
codesome Jun 21, 2023
813afcd
Fix tests
codesome Jun 21, 2023
1df2c7c
Merge branch 'main' into codesome/stream-store
codesome Jun 21, 2023
a71c6a0
Fix limits calculation in storegateway
codesome Jun 22, 2023
b78935e
Increase test coverage
codesome Jun 22, 2023
0c519a3
Merge branch 'main' into codesome/stream-store
codesome Jun 27, 2023
bbbcd4e
Fix tests
codesome Jun 27, 2023
a30ebf8
Fox integration test metrics
codesome Jun 27, 2023
0b542d6
Fix tests
codesome Jun 27, 2023
68e7450
Fix review comments
codesome Jun 27, 2023
c53309b
Fix integration tests
codesome Jun 27, 2023
3c44a6d
Split streamingSeriesSetForBlocks
codesome Jun 27, 2023
43622d4
lint
codesome Jun 27, 2023
227b3e8
lint and test
codesome Jun 27, 2023
4333c6f
Fix 'cannot reverse reader' bug with more test coverage
codesome Jun 30, 2023
8a998b0
Merge branch 'main' into codesome/stream-store
codesome Jun 30, 2023
9343e31
Fix review comments
codesome Jul 3, 2023
92d30a4
Fix integration tests
codesome Jul 4, 2023
63c3b59
Add changelog entry
codesome Jul 4, 2023
a404446
Integration tests
codesome Jul 4, 2023
774b0b0
Merge branch 'main' into codesome/stream-store
codesome Jul 4, 2023
8903d2a
Move and rename stream reader for store gateway
codesome Jul 5, 2023
edc87fc
Merge branch 'main' into codesome/stream-store
codesome Jul 5, 2023
a545503
Fix StoreGatewayStreamReader and add tests for it
codesome Jul 5, 2023
e78fc3d
Fix comments
codesome Jul 5, 2023
2c5ee20
Fix review comments part 1
codesome Jul 5, 2023
3002e83
Fix review comments part 2
codesome Jul 5, 2023
e16bfb2
Fix preloading metrics
codesome Jul 6, 2023
7ebf5c0
Fix logs
codesome Jul 7, 2023
e4284a1
Merge branch 'main' into codesome/stream-store
codesome Jul 10, 2023
6ed86ac
Fix comments
codesome Jul 10, 2023
93e8d0a
Store-gateway querier streaming: prevent series hash cache pollution …
dimitarvdimitrov Jul 10, 2023
052dd36
Merge branch 'main' into codesome/stream-store
codesome Jul 10, 2023
020248a
Move initialisation of seriesChunksChan
codesome Jul 11, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
* [CHANGE] Store-gateway: skip verifying index header integrity upon loading. To enable verification set `blocks_storage.bucket_store.index_header.verify_on_load: true`.
* [CHANGE] Querier: change the default value of the experimental `-querier.streaming-chunks-per-ingester-buffer-size` flag to 256. #5203
* [CHANGE] Querier: only initiate query requests to ingesters in the `ACTIVE` state in the ring. #5342
* [CHANGE] Querier: Renamed `-querier.prefer-streaming-chunks` to `-querier.prefer-streaming-chunks-for-ingesters` to enable streaming chunks from ingesters to queriers. #5182
* [CHANGE] Querier: `-query-frontend.cache-unaligned-requests` has been moved from a global flag to a per-tenant override. #5312
* [CHANGE] Ingester: removed `cortex_ingester_shipper_dir_syncs_total` and `cortex_ingester_shipper_dir_sync_failures_total` metrics. The former metric was not much useful, and the latter was never incremented. #5396
* [FEATURE] Cardinality API: Add a new `count_method` parameter which enables counting active series #5136
Expand Down Expand Up @@ -42,6 +43,7 @@
* [ENHANCEMENT] Querier: add `cortex_queries_rejected_total` metric that counts the number of queries rejected due to hitting a limit (eg. max series per query or max chunks per query). #5316
* [ENHANCEMENT] Querier: add experimental `-querier.minimize-ingester-requests-hedging-delay` option to initiate requests to further ingesters when request minimisation is enabled and not all initial requests have completed. #5368
* [ENHANCEMENT] Clarify docs for `-ingester.client.*` flags to make it clear that these are used by both queriers and distributors. #5375
* [ENHANCEMENT] Querier and Store-gateway: add experimental support for streaming chunks from store-gateways to queriers while evaluating queries. This can be enabled with `-querier.prefer-streaming-chunks-from-store-gateways=true`. #5182
* [ENHANCEMENT] Ingester: added `cortex_ingester_shipper_last_successful_upload_timestamp_seconds` metric tracking the last successful TSDB block uploaded to the bucket (unix timestamp in seconds). #5396
* [BUGFIX] Ingester: Handle when previous ring state is leaving and the number of tokens has changed. #5204
* [BUGFIX] Querier: fix issue where queries that use the `timestamp()` function fail with `execution: attempted to read series at index 0 from stream, but the stream has already been exhausted` if streaming chunks from ingesters to queriers is enabled. #5370
Expand Down
26 changes: 24 additions & 2 deletions cmd/mimir/config-descriptor.json
Original file line number Diff line number Diff line change
Expand Up @@ -1642,12 +1642,23 @@
},
{
"kind": "field",
"name": "prefer_streaming_chunks",
"name": "prefer_streaming_chunks_from_ingesters",
"required": false,
"desc": "Request ingesters stream chunks. Ingesters will only respond with a stream of chunks if the target ingester supports this, and this preference will be ignored by ingesters that do not support this.",
"fieldValue": null,
"fieldDefaultValue": false,
"fieldFlag": "querier.prefer-streaming-chunks",
"fieldFlag": "querier.prefer-streaming-chunks-from-ingesters",
"fieldType": "boolean",
"fieldCategory": "experimental"
},
{
"kind": "field",
"name": "prefer_streaming_chunks_from_store_gateways",
"required": false,
"desc": "Request store-gateways stream chunks. Store-gateways will only respond with a stream of chunks if the target store-gateway supports this, and this preference will be ignored by store-gateways that do not support this.",
"fieldValue": null,
"fieldDefaultValue": false,
"fieldFlag": "querier.prefer-streaming-chunks-from-store-gateways",
"fieldType": "boolean",
"fieldCategory": "experimental"
},
Expand All @@ -1662,6 +1673,17 @@
"fieldType": "int",
"fieldCategory": "experimental"
},
{
"kind": "field",
"name": "streaming_chunks_per_store_gateway_series_buffer_size",
"required": false,
"desc": "Number of series to buffer per store-gateway when streaming chunks from store-gateways.",
"fieldValue": null,
"fieldDefaultValue": 256,
"fieldFlag": "querier.streaming-chunks-per-store-gateway-buffer-size",
"fieldType": "int",
"fieldCategory": "experimental"
},
{
"kind": "field",
"name": "minimize_ingester_requests",
Expand Down
6 changes: 5 additions & 1 deletion cmd/mimir/help-all.txt.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -1611,8 +1611,10 @@ Usage of ./cmd/mimir/mimir:
[experimental] If true, when querying ingesters, only the minimum required ingesters required to reach quorum will be queried initially, with other ingesters queried only if needed due to failures from the initial set of ingesters. Enabling this option reduces resource consumption for the happy path at the cost of increased latency for the unhappy path.
-querier.minimize-ingester-requests-hedging-delay duration
[experimental] Delay before initiating requests to further ingesters when request minimization is enabled and the initially selected set of ingesters have not all responded. Ignored if -querier.minimize-ingester-requests is not enabled. (default 3s)
-querier.prefer-streaming-chunks
-querier.prefer-streaming-chunks-from-ingesters
[experimental] Request ingesters stream chunks. Ingesters will only respond with a stream of chunks if the target ingester supports this, and this preference will be ignored by ingesters that do not support this.
-querier.prefer-streaming-chunks-from-store-gateways
[experimental] Request store-gateways stream chunks. Store-gateways will only respond with a stream of chunks if the target store-gateway supports this, and this preference will be ignored by store-gateways that do not support this.
-querier.query-ingesters-within duration
Maximum lookback beyond which queries are not sent to ingester. 0 means all queries are sent to ingester. (default 13h)
-querier.query-store-after duration
Expand All @@ -1639,6 +1641,8 @@ Usage of ./cmd/mimir/mimir:
Override the expected name on the server certificate.
-querier.streaming-chunks-per-ingester-buffer-size uint
[experimental] Number of series to buffer per ingester when streaming chunks from ingesters. (default 256)
-querier.streaming-chunks-per-store-gateway-buffer-size uint
[experimental] Number of series to buffer per store-gateway when streaming chunks from store-gateways. (default 256)
-querier.timeout duration
The timeout for a query. This config option should be set on query-frontend too when query sharding is enabled. This also applies to queries evaluated by the ruler (internally or remotely). (default 2m0s)
-query-frontend.align-queries-with-step
Expand Down
15 changes: 13 additions & 2 deletions docs/sources/mimir/references/configuration-parameters/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -1096,14 +1096,25 @@ store_gateway_client:
# (experimental) Request ingesters stream chunks. Ingesters will only respond
# with a stream of chunks if the target ingester supports this, and this
# preference will be ignored by ingesters that do not support this.
# CLI flag: -querier.prefer-streaming-chunks
[prefer_streaming_chunks: <boolean> | default = false]
# CLI flag: -querier.prefer-streaming-chunks-from-ingesters
[prefer_streaming_chunks_from_ingesters: <boolean> | default = false]

# (experimental) Request store-gateways stream chunks. Store-gateways will only
# respond with a stream of chunks if the target store-gateway supports this, and
# this preference will be ignored by store-gateways that do not support this.
# CLI flag: -querier.prefer-streaming-chunks-from-store-gateways
[prefer_streaming_chunks_from_store_gateways: <boolean> | default = false]

# (experimental) Number of series to buffer per ingester when streaming chunks
# from ingesters.
# CLI flag: -querier.streaming-chunks-per-ingester-buffer-size
[streaming_chunks_per_ingester_series_buffer_size: <int> | default = 256]

# (experimental) Number of series to buffer per store-gateway when streaming
# chunks from store-gateways.
# CLI flag: -querier.streaming-chunks-per-store-gateway-buffer-size
[streaming_chunks_per_store_gateway_series_buffer_size: <int> | default = 256]

# (experimental) If true, when querying ingesters, only the minimum required
# ingesters required to reach quorum will be queried initially, with other
# ingesters queried only if needed due to failures from the initial set of
Expand Down
18 changes: 9 additions & 9 deletions integration/ingester_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -480,9 +480,9 @@ func TestIngesterQuerying(t *testing.T) {
defer s.Close()

baseFlags := map[string]string{
"-distributor.ingestion-tenant-shard-size": "0",
"-ingester.ring.heartbeat-period": "1s",
"-querier.prefer-streaming-chunks": strconv.FormatBool(streamingEnabled),
"-distributor.ingestion-tenant-shard-size": "0",
"-ingester.ring.heartbeat-period": "1s",
"-querier.prefer-streaming-chunks-from-ingesters": strconv.FormatBool(streamingEnabled),
}

flags := mergeFlags(
Expand Down Expand Up @@ -543,12 +543,12 @@ func TestIngesterQueryingWithRequestMinimization(t *testing.T) {
defer s.Close()

baseFlags := map[string]string{
"-distributor.ingestion-tenant-shard-size": "0",
"-ingester.ring.heartbeat-period": "1s",
"-ingester.ring.zone-awareness-enabled": "true",
"-ingester.ring.replication-factor": "3",
"-querier.minimize-ingester-requests": "true",
"-querier.prefer-streaming-chunks": strconv.FormatBool(streamingEnabled),
"-distributor.ingestion-tenant-shard-size": "0",
"-ingester.ring.heartbeat-period": "1s",
"-ingester.ring.zone-awareness-enabled": "true",
"-ingester.ring.replication-factor": "3",
"-querier.minimize-ingester-requests": "true",
"-querier.prefer-streaming-chunks-from-ingesters": strconv.FormatBool(streamingEnabled),
}

flags := mergeFlags(
Expand Down
47 changes: 32 additions & 15 deletions integration/querier_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,22 @@ import (
)

func TestQuerierWithBlocksStorageRunningInMicroservicesMode(t *testing.T) {
testQuerierWithBlocksStorageRunningInMicroservicesMode(t, generateFloatSeries)
for _, streamingEnabled := range []bool{true, false} {
t.Run(fmt.Sprintf("streaming=%t", streamingEnabled), func(t *testing.T) {
testQuerierWithBlocksStorageRunningInMicroservicesMode(t, streamingEnabled, generateFloatSeries)
})
}
}

func TestQuerierWithBlocksStorageRunningInMicroservicesModeWithHistograms(t *testing.T) {
testQuerierWithBlocksStorageRunningInMicroservicesMode(t, generateHistogramSeries)
for _, streamingEnabled := range []bool{true, false} {
t.Run(fmt.Sprintf("streaming=%t", streamingEnabled), func(t *testing.T) {
testQuerierWithBlocksStorageRunningInMicroservicesMode(t, streamingEnabled, generateHistogramSeries)
})
}
}

func testQuerierWithBlocksStorageRunningInMicroservicesMode(t *testing.T, seriesGenerator func(name string, ts time.Time, additionalLabels ...prompb.Label) (series []prompb.TimeSeries, vector model.Vector, matrix model.Matrix)) {
func testQuerierWithBlocksStorageRunningInMicroservicesMode(t *testing.T, streamingEnabled bool, seriesGenerator func(name string, ts time.Time, additionalLabels ...prompb.Label) (series []prompb.TimeSeries, vector model.Vector, matrix model.Matrix)) {
tests := map[string]struct {
tenantShardSize int
indexCacheBackend string
Expand Down Expand Up @@ -162,6 +170,8 @@ func testQuerierWithBlocksStorageRunningInMicroservicesMode(t *testing.T, series
"-store-gateway.tenant-shard-size": fmt.Sprintf("%d", testCfg.tenantShardSize),
"-query-frontend.query-stats-enabled": "true",
"-query-frontend.parallelize-shardable-queries": strconv.FormatBool(testCfg.queryShardingEnabled),
"-querier.prefer-streaming-chunks-from-ingesters": strconv.FormatBool(streamingEnabled),
"-querier.prefer-streaming-chunks-from-store-gateways": strconv.FormatBool(streamingEnabled),
})

// Start store-gateways.
Expand Down Expand Up @@ -239,15 +249,21 @@ func testQuerierWithBlocksStorageRunningInMicroservicesMode(t *testing.T, series
// thanos_store_index_cache_requests_total: ExpandedPostings: 5, Postings: 2, Series: 2
instantQueriesCount++

comparingFunction := e2e.Equals
if streamingEnabled {
// Some metrics can be higher when streaming is enabled. The exact number is not deterministic in every case.
comparingFunction = e2e.GreaterOrEqual
}

// Check the in-memory index cache metrics (in the store-gateway).
require.NoError(t, storeGateways.WaitSumMetrics(e2e.Equals(9), "thanos_store_index_cache_requests_total")) // 5 + 2 + 2
require.NoError(t, storeGateways.WaitSumMetrics(e2e.Equals(0), "thanos_store_index_cache_hits_total")) // no cache hit cause the cache was empty
require.NoError(t, storeGateways.WaitSumMetrics(comparingFunction(9), "thanos_store_index_cache_requests_total")) // 5 + 2 + 2
require.NoError(t, storeGateways.WaitSumMetrics(comparingFunction(0), "thanos_store_index_cache_hits_total")) // no cache hit cause the cache was empty

if testCfg.indexCacheBackend == tsdb.IndexCacheBackendInMemory {
require.NoError(t, storeGateways.WaitSumMetrics(e2e.Equals(2*2+2+3), "thanos_store_index_cache_items")) // 2 series both for postings and series cache, 2 expanded postings on one block, 3 on another one
require.NoError(t, storeGateways.WaitSumMetrics(e2e.Equals(2*2+2+3), "thanos_store_index_cache_items_added_total")) // 2 series both for postings and series cache, 2 expanded postings on one block, 3 on another one
} else if testCfg.indexCacheBackend == tsdb.IndexCacheBackendMemcached {
require.NoError(t, storeGateways.WaitSumMetrics(e2e.Equals(9*2), "thanos_memcached_operations_total")) // one set for each get
require.NoError(t, storeGateways.WaitSumMetrics(comparingFunction(9*2), "thanos_memcached_operations_total")) // one set for each get
}

// Query back again the 1st series from storage. This time it should use the index cache.
Expand All @@ -257,14 +273,14 @@ func testQuerierWithBlocksStorageRunningInMicroservicesMode(t *testing.T, series
assert.Equal(t, expectedVector1, result.(model.Vector))
expectedFetchedSeries++ // Storage only.

require.NoError(t, storeGateways.WaitSumMetrics(e2e.Equals(9+2), "thanos_store_index_cache_requests_total"))
require.NoError(t, storeGateways.WaitSumMetrics(e2e.Equals(2), "thanos_store_index_cache_hits_total")) // this time has used the index cache
require.NoError(t, storeGateways.WaitSumMetrics(comparingFunction(9+2), "thanos_store_index_cache_requests_total"))
require.NoError(t, storeGateways.WaitSumMetrics(comparingFunction(2), "thanos_store_index_cache_hits_total")) // this time has used the index cache

if testCfg.indexCacheBackend == tsdb.IndexCacheBackendInMemory {
require.NoError(t, storeGateways.WaitSumMetrics(e2e.Equals(2*2+2+3), "thanos_store_index_cache_items")) // as before
require.NoError(t, storeGateways.WaitSumMetrics(e2e.Equals(2*2+2+3), "thanos_store_index_cache_items_added_total")) // as before
} else if testCfg.indexCacheBackend == tsdb.IndexCacheBackendMemcached {
require.NoError(t, storeGateways.WaitSumMetrics(e2e.Equals(9*2+2), "thanos_memcached_operations_total")) // as before + 2 gets (expanded postings and series)
require.NoError(t, storeGateways.WaitSumMetrics(comparingFunction(9*2+2), "thanos_memcached_operations_total")) // as before + 2 gets (expanded postings and series)
}

// Query range. We expect 1 data point with a value of 3 (number of series).
Expand Down Expand Up @@ -877,12 +893,13 @@ func TestQueryLimitsWithBlocksStorageRunningInMicroServices(t *testing.T) {
// Configure the blocks storage to frequently compact TSDB head
// and ship blocks to the storage.
flags := mergeFlags(BlocksStorageFlags(), BlocksStorageS3Flags(), map[string]string{
"-blocks-storage.tsdb.block-ranges-period": blockRangePeriod.String(),
"-blocks-storage.tsdb.ship-interval": "1s",
"-blocks-storage.bucket-store.sync-interval": "1s",
"-blocks-storage.tsdb.retention-period": ((blockRangePeriod * 2) - 1).String(),
"-querier.max-fetched-series-per-query": "3",
"-querier.prefer-streaming-chunks": strconv.FormatBool(streamingEnabled),
"-blocks-storage.tsdb.block-ranges-period": blockRangePeriod.String(),
"-blocks-storage.tsdb.ship-interval": "1s",
"-blocks-storage.bucket-store.sync-interval": "1s",
"-blocks-storage.tsdb.retention-period": ((blockRangePeriod * 2) - 1).String(),
"-querier.max-fetched-series-per-query": "3",
"-querier.prefer-streaming-chunks-from-ingesters": strconv.FormatBool(streamingEnabled),
"-querier.prefer-streaming-chunks-from-store-gateways": strconv.FormatBool(streamingEnabled),
})

// Start dependencies.
Expand Down
2 changes: 1 addition & 1 deletion pkg/mimir/modules.go
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,7 @@ func (t *Mimir) initDistributorService() (serv services.Service, err error) {
// ruler's dependency)
canJoinDistributorsRing := t.Cfg.isAnyModuleEnabled(Distributor, Write, All)

t.Cfg.Distributor.PreferStreamingChunks = t.Cfg.Querier.PreferStreamingChunks
t.Cfg.Distributor.PreferStreamingChunks = t.Cfg.Querier.PreferStreamingChunksFromIngesters
t.Cfg.Distributor.StreamingChunksPerIngesterSeriesBufferSize = t.Cfg.Querier.StreamingChunksPerIngesterSeriesBufferSize
t.Cfg.Distributor.MinimizeIngesterRequests = t.Cfg.Querier.MinimizeIngesterRequests
t.Cfg.Distributor.MinimiseIngesterRequestsHedgingDelay = t.Cfg.Querier.MinimiseIngesterRequestsHedgingDelay
Expand Down
Loading