Skip to content

Compressed dictionaries inside of LowCardinality. WIP#80356

Open
Krytog wants to merge 61 commits intoClickHouse:masterfrom
Krytog:sync_25.6
Open

Compressed dictionaries inside of LowCardinality. WIP#80356
Krytog wants to merge 61 commits intoClickHouse:masterfrom
Krytog:sync_25.6

Conversation

@Krytog
Copy link
Copy Markdown

@Krytog Krytog commented May 16, 2025

Changelog category (leave one):

  • Experimental Feature

Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):

Add in-memory compressed dictionary for LowCardinality to reduce memory consumption and enhance throughput

Documentation entry for user-facing changes

  • Documentation is written (mandatory for new features)

Adds session settings low_cardinality_experimental_compression and low_cardinality_compression_fc_block_parameter. These settings are used to enable in-memory front coding compression of dictionaries inside of LowCardinality(String). It greatly reduces memory consumption at the cost of some execution speed. Overall throughput is enhanced. Especially useful when there are high numbers of unique elements in a column.

Technical details: compression is implemented via a ColumnUniqueCompressed column that contains compressed data and can be used inside of LowCardinality. A lot of changes are made to enable all the systems to work with LowCardinality columns with compressed dictionaries inside.

Some additional optimizations are in development.

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented May 16, 2025

CLA assistant check
All committers have signed the CLA.

@nikitamikhaylov nikitamikhaylov added the can be tested Allows running workflows for external contributors label May 16, 2025
@clickhouse-gh
Copy link
Copy Markdown
Contributor

clickhouse-gh bot commented May 23, 2025

Workflow [PR], commit [a215c1b]

@clickhouse-gh clickhouse-gh bot added the pr-experimental Experimental Feature label May 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

can be tested Allows running workflows for external contributors pr-experimental Experimental Feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants