Skip to content
Snippets Groups Projects
Select Git revision
  • benchmark-tools
  • postgres-lambda
  • master default
  • REL9_4_25
  • REL9_5_20
  • REL9_6_16
  • REL_10_11
  • REL_11_6
  • REL_12_1
  • REL_12_0
  • REL_12_RC1
  • REL_12_BETA4
  • REL9_4_24
  • REL9_5_19
  • REL9_6_15
  • REL_10_10
  • REL_11_5
  • REL_12_BETA3
  • REL9_4_23
  • REL9_5_18
  • REL9_6_14
  • REL_10_9
  • REL_11_4
23 results

rmgr.c

  • Tom Lane's avatar
    b9b8831a
    Create a "relation mapping" infrastructure to support changing the relfilenodes · b9b8831a
    Tom Lane authored
    of shared or nailed system catalogs.  This has two key benefits:
    
    * The new CLUSTER-based VACUUM FULL can be applied safely to all catalogs.
    
    * We no longer have to use an unsafe reindex-in-place approach for reindexing
      shared catalogs.
    
    CLUSTER on nailed catalogs now works too, although I left it disabled on
    shared catalogs because the resulting pg_index.indisclustered update would
    only be visible in one database.
    
    Since reindexing shared system catalogs is now fully transactional and
    crash-safe, the former special cases in REINDEX behavior have been removed;
    shared catalogs are treated the same as non-shared.
    
    This commit does not do anything about the recently-discussed problem of
    deadlocks between VACUUM FULL/CLUSTER on a system catalog and other
    concurrent queries; will address that in a separate patch.  As a stopgap,
    parallel_schedule has been tweaked to run vacuum.sql by itself, to avoid
    such failures during the regression tests.
    b9b8831a
    History
    Create a "relation mapping" infrastructure to support changing the relfilenodes
    Tom Lane authored
    of shared or nailed system catalogs.  This has two key benefits:
    
    * The new CLUSTER-based VACUUM FULL can be applied safely to all catalogs.
    
    * We no longer have to use an unsafe reindex-in-place approach for reindexing
      shared catalogs.
    
    CLUSTER on nailed catalogs now works too, although I left it disabled on
    shared catalogs because the resulting pg_index.indisclustered update would
    only be visible in one database.
    
    Since reindexing shared system catalogs is now fully transactional and
    crash-safe, the former special cases in REINDEX behavior have been removed;
    shared catalogs are treated the same as non-shared.
    
    This commit does not do anything about the recently-discussed problem of
    deadlocks between VACUUM FULL/CLUSTER on a system catalog and other
    concurrent queries; will address that in a separate patch.  As a stopgap,
    parallel_schedule has been tweaked to run vacuum.sql by itself, to avoid
    such failures during the regression tests.