Skip to content

Implement VACUUM FULL support for OrioleDB tables.#48

Open
Serge-sudo wants to merge 96 commits into
orioledb:patches17from
Serge-sudo:vacuum-full
Open

Implement VACUUM FULL support for OrioleDB tables.#48
Serge-sudo wants to merge 96 commits into
orioledb:patches17from
Serge-sudo:vacuum-full

Conversation

@Serge-sudo
Copy link
Copy Markdown
Contributor

The operation recreates the table and all associated structures (indexes, bridges, etc.) from scratch, effectively compacting the storage. As a result, all dead tuples and empty space are removed, eliminating fragmentation and reclaiming disk space.

downlink-> orioledb/orioledb#739

akorotkov and others added 30 commits February 5, 2026 13:46
Discussion: https://postgr.es/m/CAPpHfdua-YFw3XTprfutzGp28xXLigFtzNbuFY8yPhqeq6X5kg%40mail.gmail.com
Reviewed-by: Aleksander Alekseev, Pavel Borisov, Vignesh C, Mason Sharp
Reviewed-by: Andres Freund, Chris Travers
Snapshot have two pairing heap nodes: for data and system undos.
 * Added SearchCatCacheInternal_hook, SearchCatCacheList_hook
 * Added SysCacheGetAttr_hook
IsFatalError()
have_backup_in_progress()
SnapBuildNextPhaseAt()
DoLocalLockExist()
Outline-atomics is a gcc compilation flag that enables runtime detection
of CPU support for atomic instructions.
Performance on CPUs that do support atomic instructions is improved,
while compatibility and performance on CPUs without atomic instructions
is not hurt.

Discussion: https://postgr.es/m/flat/099F69EE-51D3-4214-934A-1F28C0A1A7A7%40amazon.com
Author: Tsahi Zidenberg
They are allowed to stay during shutdown checkpointing and help checkpointer
do its work.
To use curl during shared_preload_libraries initialization.
- added option --extension for pg_rewind
- extracted SimpleXLogRead from extractPageMap for generic wal iteration in pg_rewind
e-ivkov and others added 28 commits February 5, 2026 13:59
 * Use patchset number is there is an exact match to the tag
 * Use commit hash otherwise
Transactions need to be marked as RBTXN_DISTR_SKIP_CLEANUP to be skipped in
ReorderBufferAbortOld().
pg_column_toast_chunk_id() is tied to PG TOAST pointer format and can't work with
OrioledDB TOAST pointer. So make it safely return NULL in this case.

PG17+ only

Fixes orioledb/orioledb#690
Instead of interperting all the extension wait events as process blocker,
only recognize "StopEvent" by its name.
Use tupleid for ROW_REF_TID as in upsteam.  Use &context->tmfd.ctid for
ROW_REF_ROWID as in OrioleDB.
The operation recreates the table and all associated structures
(indexes, bridges, etc.) from scratch, effectively compacting the
storage. As a result, all dead tuples and empty space are removed,
eliminating fragmentation and reclaiming disk space.
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.

8 participants