datafusion-contrib / datafusion-contrib/liquid-cache

Project idea: How good is well-configured parquet compared to proprietary file formats?

Open
#227 58 comments 9 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

good first issue help wanted
Dominant language
Rust
Stars
452
Forks
51
Avg merge
3h 10m
Merged PRs (30d)
12

Description

I had a nice talk with @alamb today, and he suggested a fun project


Observations: proprietary file formats usually perform faster than Parquet, as shown in ClickBench

There're two hypothesis to explain this performance gap:

  1. Those formats somehow do better than Parquet
  2. Those systems load the raw ClickBench's Parquet file and make sorting/clustering when convert them into proprietary formats. Therefore, a lot of the benefits come from sorting/clustering.

The goal of this project is to:

  1. Quantify how much benefits come from the format itself versus the pre-processing of the file
  2. (extend goal) figure out exactly which features of the proprietary file format are better than Parquet.

Concrete steps:

  • Run DataFusion with unmodified ClickBench
  • Make a sorted/clustered ClickBench Parquet file
  • Run DataFusion with this new Parquet file, and compare the performance
  • Profile and analyze where did the time go

Fun challenge: how much performance gain you can get by simply tuning the Parquet configurations -- page index, bloom filter, clustering, compression etc.

More contexts: https://x.com/andrewlamb1111/status/1925537738360504663

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source files or tests are named. Start with the ClickBench dataset and the unmodified DataFusion run, then compare it with sorted or clustered Parquet and tuned Parquet configurations. Done means quantifying format versus preprocessing gains, profiling the costs, and documenting which Parquet settings or proprietary-format features explain the difference.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
data-engineering, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.