Greenplum shows "WARNING: skipping "gp_persistent_relation_node" --- cannot vacuum indexes, views, external tables, or special system tables"
search cancel

Greenplum shows "WARNING: skipping "gp_persistent_relation_node" --- cannot vacuum indexes, views, external tables, or special system tables"

book

Article ID: 296484

calendar_today

Updated On:

Products

VMware Tanzu Greenplum

Issue/Introduction

The following warning message shows up in all versions of Greenplum:
database=# select * from gp_toolkit.gp_bloat_diag where bdinspname = 'pg_catalog' and bdirelname ilike 'gp%'; bdirelid | bdinspname | bdirelname | bdirelpages | bdiexppages | bdidiag ----------+------------+-----------------------------+-------------+-------------+------------------------------------5090 | pg_catalog | gp_persistent_relation_node | 4711 | 41 | significant amount of bloat suspected 
5094 | pg_catalog | gp_relation_node | 640 | 30 | significant amount of bloat suspected (2 rows) 
database=# vacuum pg_catalog.gp_persistent_relation_node; 
VACUUM 
database=# select * from gp_toolkit.gp_bloat_diag where bdinspname = 'pg_catalog' and bdirelname ilike 'gp%'; 
bdirelid | bdinspname | bdirelname | bdirelpages | bdiexppages | bdidiag ----------+------------+-----------------------------+-------------+-------------+--------------------------------------- 
5090 | pg_catalog | gp_persistent_relation_node | 4711 | 30 | significant amount of bloat suspected 
5094 | pg_catalog | gp_relation_node | 640 | 30 | significant amount of bloat suspected (2 rows) 
database=# vacuum full pg_catalog.gp_persistent_relation_node; 
WARNING: skipping "gp_persistent_relation_node" --- cannot vacuum indexes, views, external tables, or special system tables VACUUM 
database=#


Environment

Product Version: 5.22

Resolution

For GPDB 4:

You cannot perform a VACUUM on the pg_catalog.gp_persistent_relation_node table and this is by design.

Persistent tables use their own free lists to re-use dead rows, therefore VACUUM or VACUUM FULL is not needed. These tables have no impact on the database age and warnings are not getting generated because of these tables. The above theory applies to all persistent and global catalog tables.

For GPDB 5: 

Free list handling for PT was changed to leverage the regular heap mechanism and hence regular VACUUM works and is required to manage freespace. GPDB 4 PT had their own version of free list management and poses unnecessary challenges and complexity in code. Due to that, a need for vacuum didn’t exist in GPDB 4. 

Note: VACUUM FULL is still not enabled for PT and we can only use the PT rebuild to reduce the size of it.