apache / apache/parquet-format

Consider adding BloomFilterHeader to ColumnMetaData

Open
#285 0 comments 0 reactions 0 assignees View on GitHub
Priority: Major Type: enhancement
Dominant language
Thrift
Stars
2.6k
Forks
508
Avg merge
2d 8h
Merged PRs (30d)
4

Description

Currently ColumnMetaData only contains bloom_filter_offset, which points to BloomFilterHeader followed by the bloom filter data.

This solution is not optimal during reading, as two IO reads are needed once we know bloom_filter_offset - one to read the header, which contains the size of the bloom filter, then another to read the actual bloom filter to a buffer. Having the size near bloom_filter_offset would allow to do this in a single read.

Having algorithm/hash/compression could be also useful by allowing skipping the read of the bloom filter if one of those parameters is not supported.

**Reporter**: [Csaba Ringhofer](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=csringhofer) / @csringhofer

**Note**: *This issue was originally created as [PARQUET-1981](https://issues.apache.org/jira/browse/PARQUET-1981). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*

Contributor guide

Open the contributing guide

Research direction

Start by reading the schema definitions for ColumnMetaData and BloomFilterHeader, focusing on how bloom_filter_offset and the header size are represented. Done means ColumnMetaData can expose the needed size and, where appropriate, algorithm, hash, and compression information so readers can avoid a second read or skip unsupported filters.

Written by the indexing model from the issue text.

Assessment

Domain
data-engineering
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.