Skip to content

gpfdist supports reading LZO-compressed files. - #1887

Open
ZTE-EBASE wants to merge 1 commit into
apache:mainfrom
ZTE-EBASE:gpfdist_lzo_feature
Open

gpfdist supports reading LZO-compressed files.#1887
ZTE-EBASE wants to merge 1 commit into
apache:mainfrom
ZTE-EBASE:gpfdist_lzo_feature

Conversation

@ZTE-EBASE

Copy link
Copy Markdown

Fixes #ISSUE_Number

What does this PR do?

This PR adds LZO compressed file format read/write support to the gpfdist utility in Apache Cloudberry.

Type of Change

  • New feature (non-breaking change)

Breaking Changes

Test Plan

  • Unit tests added/updated
  • Integration tests added/updated
  • Passed make installcheck
  • Passed make -C src/test installcheck-cbdb-parallel

Impact

Performance:

Scenario 1: High-Volume Data Loading

LZO is a lightweight compression algorithm optimized for decompression speed (~500MB/s), making it ideal for scenarios requiring rapid data ingestion. Compared to BZip2 (~10MB/s) and GZIP (~100MB/s), LZO provides the fastest decompression while maintaining a reasonable compression ratio.

Why this matters: For time-critical ETL jobs, LZO can reduce load times by 2-5x compared to heavier compression algorithms, while still saving ~50% storage space compared to uncompressed files.

Scenario 2: Hadoop Ecosystem Integration

Many Hadoop ecosystem tools natively support LZO compression:

  1. Hive: Supports LZO-compressed text and sequence files
  2. Spark: Can write LZO-compressed output (via hadoop-lzo library)
  3. Sqoop: Commonly uses LZO for bulk imports from RDBMS to HDFS

Scenario 3: Storage Efficiency with Parallel Performance

LZO is splittable, meaning multiple gpfdist instances (or segments) can read different portions of the same file simultaneously. This enables near-linear scalability with additional segments.

User-facing changes:

Dependencies:

#1886 (reply in thread)

Checklist

References

Technical Documentation

Cloudberry Documentation

Related Projects

Additional Context

CI Skip Instructions


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.

1 participant