Skip to content

Running Kevin's row_group_pruning branch on libcudf nightlies and a patched cucascade - #456

Closed
joosthooz wants to merge 11 commits into
sirius-db:devfrom
joosthooz:row_group_pruning
Closed

joosthooz wants to merge 11 commits into
sirius-db:devfrom
joosthooz:row_group_pruning

Conversation

@joosthooz

Copy link
Copy Markdown
Collaborator

Shamelessly building on Kevin's PR #363 but using libcudf nightly build and cucascade with this patch NVIDIA/cuCascade#88

kevkrist and others added 6 commits March 10, 2026 17:56
- Integrate dev's scan cache/preload: file_sizes, metadata_byte_sizes,
  footer_offsets, rebind(), get_file_size(), get_metadata_byte_size(),
  get_footer_offset()
- Byte ranges in compute_task include header and footer for zero file I/O on preload
- host_parquet_representation: add file_size parameter, keep filter_expression
  and pure_filter_ids for filter pushdown
- Partition reserved_compressed_bytes includes metadata size for cache
- Keep row_group_pruning partition structure (claim_next_rg_partition, rg_indices)

Made-with: Cursor
- Do not set filter on _reader_options (materialization reads all rows in
  selected row groups)
- Pass empty {} to make_selected_column_indices so no pure filter columns
- Use temporary pruning_options with filter only for filter_row_groups_with_stats
- Do not pass filter_expression or pure_filter_ids to host_parquet_representation
  (defaults nullptr and {})

Made-with: Cursor
- pixi.toml: switch to rapidsai channel and libcudf 26.02.*
- host_parquet_representation_converters: add 26.02 path for
  materialize_all_columns (vector<device_buffer>, 4-arg API) alongside
  26.04+ path (host_span<device_span>, 5-arg with mr_ref)

Made-with: Cursor
- Include filter column names in pruning_options so libcudf can resolve
  the filter to column statistics when projecting (reader_options had
  only projected columns).
- parquet_scan_task: store _filter_column_names and _pruning_column_names;
  use set_columns/set_column_names for 26.02/26.04 in reader and pruning.
- Guard parquet_io_utils.hpp include for 26.04+.
- Tests: adjust for pruning-only (validate partition count, relax decimal
  pruning expectation, fix filter-on-non-projected-column test).

Made-with: Cursor
@kevkrist

Copy link
Copy Markdown
Collaborator

#363 is finally ready. But I don't have access to a good machine for performance evaluation.

@joosthooz
joosthooz marked this pull request as draft March 16, 2026 10:58
@joosthooz joosthooz closed this Apr 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants