Skip to content

Commit 78a09aa

Browse files
committed
rebase + document the parquet_queryable_fallback_disabled option
Signed-off-by: alanprot <[email protected]>
1 parent c51fc02 commit 78a09aa

File tree

4 files changed

+26
-6
lines changed

4 files changed

+26
-6
lines changed

docs/blocks-storage/querier.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,14 @@ querier:
294294
# fallback to store gateway.
295295
# CLI flag: -querier.parquet-queryable-default-block-store
296296
[parquet_queryable_default_block_store: <string> | default = "parquet"]
297+
298+
# [Experimental] Disable Parquet queryable to fallback queries to Store
299+
# Gateway if the block is not available as Parquet files but available in
300+
# TSDB. Setting this to true will disable the fallback and users can remove
301+
# Store Gateway. But need to make sure Parquet files are created before it is
302+
# queryable.
303+
# CLI flag: -querier.parquet-queryable-fallback-disabled
304+
[parquet_queryable_fallback_disabled: <boolean> | default = false]
297305
```
298306
299307
### `blocks_storage_config`

docs/configuration/config-file-reference.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4450,6 +4450,13 @@ thanos_engine:
44504450
# to store gateway.
44514451
# CLI flag: -querier.parquet-queryable-default-block-store
44524452
[parquet_queryable_default_block_store: <string> | default = "parquet"]
4453+
4454+
# [Experimental] Disable Parquet queryable to fallback queries to Store Gateway
4455+
# if the block is not available as Parquet files but available in TSDB. Setting
4456+
# this to true will disable the fallback and users can remove Store Gateway. But
4457+
# need to make sure Parquet files are created before it is queryable.
4458+
# CLI flag: -querier.parquet-queryable-fallback-disabled
4459+
[parquet_queryable_fallback_disabled: <boolean> | default = false]
44534460
```
44544461
44554462
### `query_frontend_config`

docs/guides/parquet-mode.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,9 @@ querier:
132132

133133
# Default block store: "tsdb" or "parquet"
134134
parquet_queryable_default_block_store: "parquet"
135+
136+
# Disable fallback to TSDB blocks when parquet files are not available
137+
parquet_queryable_fallback_disabled: false
135138
```
136139
137140
### Query Limits for Parquet
@@ -227,6 +230,7 @@ When parquet queryable is enabled:
227230
* The bucket index now contains metadata indicating whether parquet files are available for querying
228231
1. **Query Execution**: Queries prioritize parquet files when available, falling back to TSDB blocks when parquet conversion is incomplete
229232
1. **Hybrid Queries**: Supports querying both parquet and TSDB blocks within the same query operation
233+
1. **Fallback Control**: When `parquet_queryable_fallback_disabled` is set to `true`, queries will fail with a consistency check error if any required blocks are not available as parquet files, ensuring strict parquet-only querying
230234

231235
## Monitoring
232236

@@ -276,6 +280,12 @@ cortex_parquet_queryable_cache_misses_total
276280
2. **Cache Size**: Tune `parquet_queryable_shard_cache_size` based on available memory
277281
3. **Concurrency**: Adjust `meta_sync_concurrency` based on object storage performance
278282

283+
### Fallback Configuration
284+
285+
1. **Gradual Migration**: Keep `parquet_queryable_fallback_disabled: false` (default) during initial deployment to allow queries to succeed even when parquet conversion is incomplete
286+
2. **Strict Parquet Mode**: Set `parquet_queryable_fallback_disabled: true` only after ensuring all required blocks have been converted to parquet format
287+
3. **Monitoring**: Monitor conversion progress and query failures before enabling strict parquet mode
288+
279289
## Limitations
280290

281291
1. **Experimental Feature**: Parquet mode is experimental and may have stability issues

pkg/querier/querier.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -144,14 +144,9 @@ func (cfg *Config) RegisterFlags(f *flag.FlagSet) {
144144
f.BoolVar(&cfg.IgnoreMaxQueryLength, "querier.ignore-max-query-length", false, "If enabled, ignore max query length check at Querier select method. Users can choose to ignore it since the validation can be done before Querier evaluation like at Query Frontend or Ruler.")
145145
f.BoolVar(&cfg.EnablePromQLExperimentalFunctions, "querier.enable-promql-experimental-functions", false, "[Experimental] If true, experimental promQL functions are enabled.")
146146
f.BoolVar(&cfg.EnableParquetQueryable, "querier.enable-parquet-queryable", false, "[Experimental] If true, querier will try to query the parquet files if available.")
147-
<<<<<<< HEAD
148-
f.IntVar(&cfg.ParquetQueryableShardCacheSize, "querier.parquet-queryable-shard-cache-size", 512, "[Experimental] [Experimental] Maximum size of the Parquet queryable shard cache. 0 to disable.")
149-
f.StringVar(&cfg.ParquetQueryableDefaultBlockStore, "querier.parquet-queryable-default-block-store", string(parquetBlockStore), "Parquet queryable's default block store to query. Valid options are tsdb and parquet. If it is set to tsdb, parquet queryable always fallback to store gateway.")
150-
f.BoolVar(&cfg.ParquetQueryableFallbackDisabled, "querier.parquet-queryable-fallback-disabled", false, "[Experimental] Disable Parquet queryable to fallback queries to Store Gateway if the block is not available as Parquet files but available in TSDB. Setting this to true will disable the fallback and users can remove Store Gateway. But need to make sure Parquet files are created before it is queryable.")
151-
=======
152147
f.IntVar(&cfg.ParquetQueryableShardCacheSize, "querier.parquet-queryable-shard-cache-size", 512, "[Experimental] Maximum size of the Parquet queryable shard cache. 0 to disable.")
153148
f.StringVar(&cfg.ParquetQueryableDefaultBlockStore, "querier.parquet-queryable-default-block-store", string(parquetBlockStore), "[Experimental] Parquet queryable's default block store to query. Valid options are tsdb and parquet. If it is set to tsdb, parquet queryable always fallback to store gateway.")
154-
>>>>>>> 8b66330f1a (Exposing parquet configs)
149+
f.BoolVar(&cfg.ParquetQueryableFallbackDisabled, "querier.parquet-queryable-fallback-disabled", false, "[Experimental] Disable Parquet queryable to fallback queries to Store Gateway if the block is not available as Parquet files but available in TSDB. Setting this to true will disable the fallback and users can remove Store Gateway. But need to make sure Parquet files are created before it is queryable.")
155150
}
156151

157152
// Validate the config

0 commit comments

Comments
 (0)