Skip to content
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
d892f23
feat: replace fixed MetricDataPoint fields with dynamic tag HashMap
mattmkim Mar 18, 2026
4e928fe
feat: replace ParquetField enum with constants and dynamic validation
mattmkim Mar 18, 2026
d8d71ed
feat: derive sort order and bloom filters from batch schema
mattmkim Mar 18, 2026
ad115bf
feat: union schema accumulation and schema-agnostic ingest validation
mattmkim Mar 18, 2026
d0a995e
feat: dynamic column lookup in split writer
mattmkim Mar 18, 2026
35c3942
feat: remove ParquetSchema dependency from indexing actors
mattmkim Mar 18, 2026
33c4070
refactor: deduplicate test batch helpers
mattmkim Mar 18, 2026
7a5979f
lint
mattmkim Mar 30, 2026
440631b
Merge branch 'main' into matthew.kim/metrics-wide-schema
mattmkim Mar 31, 2026
5eae799
Merge branch 'main' into matthew.kim/metrics-wide-schema
mattmkim Mar 31, 2026
5b2304c
feat(31): sort schema foundation — proto, parser, display, validation…
g-talbot Mar 31, 2026
4d42fd9
fix: rustdoc link errors — use backticks for private items
g-talbot Apr 1, 2026
b6eb595
feat(31): compaction metadata types — extend split metadata, postgres…
g-talbot Mar 31, 2026
76b703a
feat(31): wire TableConfig into sort path, add compaction KV metadata
g-talbot Mar 9, 2026
759c2ca
Update quickwit/quickwit-parquet-engine/src/table_config.rs
g-talbot Apr 7, 2026
6454f1d
Update quickwit/quickwit-parquet-engine/src/table_config.rs
g-talbot Apr 7, 2026
4d8b6b2
Merge quickwit-oss/main into gtt/phase-31-sort-schema
g-talbot Apr 8, 2026
1e67900
Merge branch 'gtt/phase-31-sort-schema' into gtt/phase-31-compaction-…
g-talbot Apr 8, 2026
85fcb2d
Merge branch 'gtt/phase-31-compaction-metadata' into gtt/phase-31-wri…
g-talbot Apr 8, 2026
4481bef
style: rustfmt long match arm in default_sort_fields
g-talbot Apr 8, 2026
64c5d5f
Merge branch 'gtt/phase-31-sort-schema' into gtt/phase-31-compaction-…
g-talbot Apr 8, 2026
a8bf948
Merge branch 'gtt/phase-31-compaction-metadata' into gtt/phase-31-wri…
g-talbot Apr 8, 2026
93e1cc7
fix: make parquet_file field backward-compatible in MetricsSplitMetadata
g-talbot Apr 8, 2026
b968085
Merge branch 'gtt/phase-31-compaction-metadata' into gtt/phase-31-wri…
g-talbot Apr 8, 2026
f7c89bf
fix: handle empty-column batches in accumulator flush
g-talbot Apr 8, 2026
112f290
Merge quickwit-oss/main and address review comments
g-talbot Apr 8, 2026
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
97 changes: 50 additions & 47 deletions quickwit/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions quickwit/quickwit-control-plane/src/indexing_scheduler/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ pub struct IndexingSchedulerState {
///
/// Scheduling executes the following steps:
/// 1. Builds a [`PhysicalIndexingPlan`] from the list of logical indexing tasks. See
/// [`build_physical_indexing_plan`] for the implementation details.
/// `build_physical_indexing_plan` for the implementation details.
/// 2. Apply the [`PhysicalIndexingPlan`]: for each indexer, the scheduler send the indexing tasks
/// by gRPC. An indexer immediately returns an Ok and apply asynchronously the received plan. Any
/// errors (network) happening in this step are ignored. The scheduler runs a control loop that
Expand Down Expand Up @@ -98,7 +98,7 @@ pub struct IndexingSchedulerState {
/// Concretely, it will send the faulty nodes of the plan they are supposed to follow.
//
/// Finally, in order to give the time for each indexer to run their indexing tasks, the control
/// plane will wait at least [`MIN_DURATION_BETWEEN_SCHEDULING`] before comparing the desired
/// plane will wait at least `MIN_DURATION_BETWEEN_SCHEDULING` before comparing the desired
/// plan with the running plan.
pub struct IndexingScheduler {
cluster_id: String,
Expand Down
2 changes: 2 additions & 0 deletions quickwit/quickwit-indexing/src/actors/indexing_pipeline.rs
Original file line number Diff line number Diff line change
Expand Up @@ -638,9 +638,11 @@ impl IndexingPipeline {

// ParquetPackager
let writer_config = quickwit_parquet_engine::storage::ParquetWriterConfig::default();
let table_config = quickwit_parquet_engine::table_config::TableConfig::default();
let split_writer = quickwit_parquet_engine::storage::ParquetSplitWriter::new(
writer_config,
self.params.indexing_directory.path(),
&table_config,
);
let parquet_packager = ParquetPackager::new(split_writer, parquet_uploader_mailbox);
let (parquet_packager_mailbox, parquet_packager_handle) = ctx
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -549,7 +549,8 @@ mod tests {

// Create ParquetPackager
let writer_config = ParquetWriterConfig::default();
let split_writer = ParquetSplitWriter::new(writer_config, temp_dir.path());
let table_config = quickwit_parquet_engine::table_config::TableConfig::default();
let split_writer = ParquetSplitWriter::new(writer_config, temp_dir.path(), &table_config);
let packager = ParquetPackager::new(split_writer, uploader_mailbox);
let (packager_mailbox, packager_handle) = universe.spawn_builder().spawn(packager);

Expand Down
3 changes: 2 additions & 1 deletion quickwit/quickwit-indexing/src/actors/parquet_e2e_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,8 @@ async fn test_metrics_pipeline_e2e() {

// ParquetPackager between indexer and uploader
let writer_config = ParquetWriterConfig::default();
let split_writer = ParquetSplitWriter::new(writer_config, temp_dir.path());
let table_config = quickwit_parquet_engine::table_config::TableConfig::default();
let split_writer = ParquetSplitWriter::new(writer_config, temp_dir.path(), &table_config);
let packager = ParquetPackager::new(split_writer, uploader_mailbox);
let (packager_mailbox, packager_handle) = universe.spawn_builder().spawn(packager);

Expand Down
Loading
Loading