diff --git a/infino/README.md b/infino/README.md index 608772349f..5c5752d64e 100644 --- a/infino/README.md +++ b/infino/README.md @@ -26,7 +26,7 @@ queries, so `tuned=no`. ``` The release build is portable (no `-C target-cpu`), pinned to a published crate -version (`infino = "0.5.3"`) so the result is reproducible from crates.io alone. +version (`infino = "0.5.6"`) so the result is reproducible from crates.io alone. LTO is sized to the machine by `install`: fat LTO + `codegen-units = 1` at >= 12 GiB RAM (its single-pass link peaks ~7.6 GB), thin LTO below so the small VMs still build. Reads use strong consistency, so a query issued right after diff --git a/infino/bench/Cargo.lock b/infino/bench/Cargo.lock index 48581ddf70..c37d47f8a0 100644 --- a/infino/bench/Cargo.lock +++ b/infino/bench/Cargo.lock @@ -2105,9 +2105,9 @@ dependencies = [ [[package]] name = "infino" -version = "0.5.3" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea5d9748bffe8ce05ac249d73fc70105a6cc5a6ccb7552a5d17e6c2b55f1d329" +checksum = "e37028176fb7e2970f0220a1caec8801713c3b358cef842dd12cd566e3464860" dependencies = [ "apache-avro", "arc-swap", diff --git a/infino/bench/Cargo.toml b/infino/bench/Cargo.toml index f8ba202b7e..74895f9198 100644 --- a/infino/bench/Cargo.toml +++ b/infino/bench/Cargo.toml @@ -8,7 +8,7 @@ name = "clickbench-infino" path = "src/main.rs" [dependencies] -infino = "0.5.3" +infino = "0.5.6" arrow = { version = "58", features = ["prettyprint"] } arrow-array = "58" arrow-schema = "58" diff --git a/infino/bench/src/main.rs b/infino/bench/src/main.rs index b804f3c2e4..5c203ee6b0 100644 --- a/infino/bench/src/main.rs +++ b/infino/bench/src/main.rs @@ -36,13 +36,17 @@ use arrow_schema::{DataType, Field, Schema, SchemaRef}; use parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder; use infino::{ - connect_with, CompactionSettings, ConnectOptions, Consistency, IndexSpec, OptimizeOptions, + connect_with, CompactionSettings, ConnectOptions, Consistency, GcSettings, IndexSpec, + OptimizeOptions, }; type R = Result>; const BATCH_ROWS: usize = 1_000_000; +/// Safety gap for the load's own garbage collection. +const GC_SAFETY_GAP_SECS: u64 = 1; + fn uri() -> String { env::var("INFINO_URI").unwrap_or_else(|_| "./data".to_string()) } @@ -177,6 +181,9 @@ fn load() -> R<()> { /// of one large file plus small leftovers. min_fill_percent is dropped to 1 so /// a one-shot optimize actually merges the small tail rather than leaving it. fn optimize_options() -> OptimizeOptions { + // Reclaim the files this optimize supersedes instead of leaving them for a later sweep. + // The cost adds in "load" time. + let gc = GcSettings::default().with_safety_gap(Duration::from_secs(GC_SAFETY_GAP_SECS)); match env::var("INFINO_TARGET_SF_MB") .ok() .and_then(|s| s.parse::().ok()) @@ -186,8 +193,9 @@ fn optimize_options() -> OptimizeOptions { min_fill_percent: 1, max_memory_mb: mb + 2048, ..Default::default() - }), - None => OptimizeOptions::default(), + }) + .with_gc(gc), + None => OptimizeOptions::default().with_gc(gc), } } diff --git a/infino/results/20260818/c6a.4xlarge.json b/infino/results/20260818/c6a.4xlarge.json new file mode 100644 index 0000000000..fd4f8040dd --- /dev/null +++ b/infino/results/20260818/c6a.4xlarge.json @@ -0,0 +1,59 @@ +{ + "system": "Infino", + "date": "2026-08-18", + "machine": "c6a.4xlarge", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["Rust","column-oriented","search"], + "load_time": 1138, + "data_size": 9842040660, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.583, 0.006, 0.006], + [0.802, 0.03, 0.029], + [1.245, 0.068, 0.067], + [1.968, 0.06, 0.057], + [1.941, 0.586, 0.555], + [1.602, 0.629, 0.628], + [0.653, 0.006, 0.006], + [0.802, 0.032, 0.035], + [2.343, 0.718, 0.722], + [3.927, 0.743, 0.764], + [2.615, 0.226, 0.226], + [2.627, 0.259, 0.267], + [1.526, 0.754, 0.725], + [4.276, 1.126, 1.127], + [1.527, 0.762, 0.75], + [2.191, 0.641, 0.65], + [4.166, 1.413, 1.422], + [3.996, 1.387, 1.415], + [5.703, 2.123, 2.166], + [0.906, 0.037, 0.034], + [5.868, 1.36, 1.382], + [7.696, 1.287, 1.209], + [10.684, 1.978, 1.981], + [1.625, 0.197, 0.209], + [1.821, 0.251, 0.239], + [1.674, 0.412, 0.413], + [1.826, 0.297, 0.298], + [6.657, 1.218, 1.239], + [5.911, 3.9, 3.91], + [0.677, 0.06, 0.058], + [4.706, 0.876, 0.877], + [9.644, 1.083, 1.056], + [7.866, 2.494, 2.498], + [6.167, 3.099, 3.048], + [6.146, 3.057, 3.071], + [1.634, 0.522, 0.527], + [0.834, 0.061, 0.058], + [0.788, 0.037, 0.032], + [0.794, 0.031, 0.031], + [0.889, 0.097, 0.099], + [0.778, 0.021, 0.024], + [0.773, 0.02, 0.019], + [0.766, 0.017, 0.016] +] + }