hydradatabase / hydradatabase/columnar

[Bug]: columnar.vacuum() does not release disk space

Open
#285 2 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
C
Stars
3k
Forks
106
PR merge metrics
No merged PRs in 30d

Description

### What's wrong?

We already have metadata tables that show 100% deleted and empty stripe, but the vacuum could not touch it after many times 1 stripe run.

https://github.com/hydradatabase/columnar/blob/d1f7657ee82265b2b9f1c06fda929bb5b942411b/columnar/src/backend/columnar/columnar_metadata.c#L16
Looks like the vacuum is a rewrite-and-compact utility, it is not metadata-driven tombstone reclamation engine.

Can you help add the function that refer to metadata table info to vacuum the stripe with high deleted row first, then, less rowcount strip second?

Thanks a lot
Frank

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at columnar/src/backend/columnar/columnar_metadata.c around line 16 and inspect the metadata tables used by vacuum. Trace the vacuum entry point, then use the reported deleted-row and empty-stripe information to define the reclamation order; done means vacuum releases space from eligible stripes, prioritizing the highest deleted-row ratio and then lower row counts.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, postgresql
Domain
databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.