diff --git a/Cargo.lock b/Cargo.lock index d2729c9f008..9dba874ff70 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12457,6 +12457,7 @@ name = "vortex-sequence" version = "0.1.0" dependencies = [ "codspeed-divan-compat", + "hegeltest", "mimalloc", "num-traits", "prost 0.14.4", diff --git a/benchmarks/compress-bench/README.md b/benchmarks/compress-bench/README.md index acee41d1284..8f3764823d3 100644 --- a/benchmarks/compress-bench/README.md +++ b/benchmarks/compress-bench/README.md @@ -11,7 +11,8 @@ ratios. Parquet provides the established reference for a compressed columnar rep The suite covers NYC taxi data and several [Public BI](https://github.com/cwida/public_bi_benchmark) tables (Arade, Bimbo, -CMSprovider, Euro2016, Food, HashTags), TPC-H `l_comment` variants, and synthetic nested +CMSprovider, Euro2016, Food, HashTags), TPC-H `l_comment` variants, the TPC-H `lineitem`, +`orders`, and `partsupp` tables at scale factor 1 (`TPC-H SF1 `), and synthetic nested data. This is the workload behind the `Compression` PR comment. See [`src/main.rs`](./src/main.rs) for the dataset list and CLI flags (`--formats`, diff --git a/benchmarks/compress-bench/src/main.rs b/benchmarks/compress-bench/src/main.rs index 51c6c90f812..9e6e9aeafa9 100644 --- a/benchmarks/compress-bench/src/main.rs +++ b/benchmarks/compress-bench/src/main.rs @@ -41,6 +41,7 @@ use vortex_bench::datasets::struct_list_of_ints::StructListOfInts; use vortex_bench::datasets::taxi_data::TaxiData; use vortex_bench::datasets::tpch_l_comment::TPCHLCommentCanonical; use vortex_bench::datasets::tpch_l_comment::TPCHLCommentChunked; +use vortex_bench::datasets::tpch_sf1::TpchSf1Table; use vortex_bench::display::DisplayFormat; use vortex_bench::display::print_measurements_json; use vortex_bench::display::render_table; @@ -325,6 +326,7 @@ async fn run_compress( &DownloadableDataset::AirQuality, ] .into_iter() + .chain(TpchSf1Table::ALL.iter().map(|d| d as &dyn Dataset)) .chain(structlistofints.iter().map(|d| d as &dyn Dataset)) .chain(sparse_wide.iter().map(|d| d as &dyn Dataset)) .collect(); diff --git a/benchmarks/string-bench/README.md b/benchmarks/string-bench/README.md index 566d71bdb7c..d7a2c6e84e4 100644 --- a/benchmarks/string-bench/README.md +++ b/benchmarks/string-bench/README.md @@ -78,11 +78,14 @@ The current input catalog is: | `news/headlines` | "A Million News Headlines" (ABC News), `headline_text` | 1.23M | | `twitter/sentiment140` | Sentiment140 tweets, train split, `text` | 1.36M | | `fineweb/text` | FineWeb `sample/10BT/001_00000.parquet`, `text` | first 10k | +| `tinystories/text` | TinyStories, train split, `text` | first 33,121 | The Amazon, news, and tweet inputs are four of the five datasets the [OnPair paper](https://arxiv.org/abs/2508.02280) evaluates on. The fifth, OpenWebText URLs, has no public parquet mirror; ClickBench `URL` covers that -shape. FineWeb adds long web documents. +shape. FineWeb adds long web documents. TinyStories adds short +stories with a small vocabulary; 33,121 rows is one file of the NeMo Curator text IO +benchmark. On first use, the selected ClickBench shard is downloaded through `vortex-bench`'s shared idempotent downloader. TPC-H SF1 is generated diff --git a/benchmarks/string-bench/src/lib.rs b/benchmarks/string-bench/src/lib.rs index 2505cc791c7..9ddaca5a39f 100644 --- a/benchmarks/string-bench/src/lib.rs +++ b/benchmarks/string-bench/src/lib.rs @@ -359,7 +359,8 @@ pub struct HfColumn { /// The datasets the OnPair paper (Gargiulo & Venturini, "OnPair: Short Strings /// Compression for Fast Random Access", arXiv:2508.02280) evaluates on, from -/// public parquet mirrors, plus a slice of FineWeb as long-document web text. +/// public parquet mirrors, plus a slice of FineWeb as long-document web text and +/// a slice of TinyStories as short-story text. /// /// The paper's fifth dataset, OpenWebText URLs, has no parquet mirror; the /// ClickBench `URL` column covers that shape. @@ -401,6 +402,14 @@ pub const HF_COLUMNS: &[HfColumn] = &[ column: "text", max_rows: Some(10_000), }, + // TinyStories story text: the first 33,121 stories (about 28 MiB), the + // size of one file that the NeMo Curator text IO benchmark writes. + HfColumn { + name: "tinystories/text", + url: "hf://datasets/roneneldan/TinyStories@37346026e81060382814d5a773f3c34799e118e7/default/train/0000.parquet", + column: "text", + max_rows: Some(33_121), + }, ]; /// Reader for a remote parquet file, used only to fill the local input cache. diff --git a/docs/_ext/vortex_site_files.py b/docs/_ext/vortex_site_files.py index cd52666ef46..654be5a7476 100644 --- a/docs/_ext/vortex_site_files.py +++ b/docs/_ext/vortex_site_files.py @@ -95,6 +95,8 @@ def _llms(app: Sphinx) -> str: "", "- [Benchmark summaries](https://bench.vortex.dev/llms.txt): every benchmark group's rankings and methods", "- [Vortex homepage](https://vortex.dev/llms.txt): what Vortex is, how to install it, and its results", + "- [Questions and answers](https://vortex.dev/faq): how Vortex compares to Parquet and Lance, " + "who uses it, and how it is governed", "", "## Optional", "", diff --git a/docs/_theme/vortex/layout.html b/docs/_theme/vortex/layout.html index eb4e175e3d7..81ee7148135 100644 --- a/docs/_theme/vortex/layout.html +++ b/docs/_theme/vortex/layout.html @@ -132,6 +132,7 @@ The Linux Foundation