1. 10 2月, 2010 4 次提交
  2. 09 2月, 2010 6 次提交
  3. 08 2月, 2010 9 次提交
    • B
      dfc90285
    • B
      Update high availability/replication documentation chart for new hot · 3ab41f02
      Bruce Momjian 提交于
      standby featureset.
      3ab41f02
    • H
      Remove piece of code to zero out minRecoveryPoint when starting crash · 4cea6031
      Heikki Linnakangas 提交于
      recovery. It's zeroed out whenever a checkpoint is written, so the only
      scenario where the removed code did anything is when you kill archive
      recovery, remove recovery.conf, and start up the server, so that it goes
      into crash recovery instead. That's a "don't do that" scenario, but it
      seems better to not clear minRecoveryPoint but instead update it like we
      do in archive recovery, which is what will now happen.
      4cea6031
    • T
      Remove CatalogCacheFlushRelation, and the reloidattr infrastructure that was · 9a75803b
      Tom Lane 提交于
      needed by nothing else.
      
      The restructuring I just finished doing on cache management exposed to me how
      silly this routine was.  Its function was to go into the catcache and blow
      away all entries related to a given relation when there was a relcache flush
      on that relation.  However, there is no point in removing a catcache entry
      if the catalog row it represents is still valid --- and if it isn't valid,
      there must have been a catcache entry flush on it, because that's triggered
      directly by heap_update or heap_delete on the catalog row.  So this routine
      accomplished nothing except to blow away valid cache entries that we'd very
      likely be wanting in the near future to help reconstruct the relcache entry.
      Dumb.
      
      On top of which, it required a subtle and easy-to-get-wrong attribute in
      syscache definitions, ie, the column containing the OID of the related
      relation if any.  Removing that is a very useful maintenance simplification.
      9a75803b
    • T
      Remove some more dead VACUUM-FULL-only code. · 68446b2c
      Tom Lane 提交于
      68446b2c
    • T
      Remove old-style VACUUM FULL (which was known for a little while as · 0a469c87
      Tom Lane 提交于
      VACUUM FULL INPLACE), along with a boatload of subsidiary code and complexity.
      Per discussion, the use case for this method of vacuuming is no longer large
      enough to justify maintaining it; not to mention that we don't wish to invest
      the work that would be needed to make it play nicely with Hot Standby.
      
      Aside from the code directly related to old-style VACUUM FULL, this commit
      removes support for certain WAL record types that could only be generated
      within VACUUM FULL, redirect-pointer removal in heap_page_prune, and
      nontransactional generation of cache invalidation sinval messages (the last
      being the sticking point for Hot Standby).
      
      We still have to retain all code that copes with finding HEAP_MOVED_OFF and
      HEAP_MOVED_IN flag bits on existing tuples.  This can't be removed as long
      as we want to support in-place update from pre-9.0 databases.
      0a469c87
    • T
      Work around deadlock problems with VACUUM FULL/CLUSTER on system catalogs, · 1ddc2703
      Tom Lane 提交于
      as per my recent proposal.
      
      First, teach IndexBuildHeapScan to not wait for INSERT_IN_PROGRESS or
      DELETE_IN_PROGRESS tuples to commit unless the index build is checking
      uniqueness/exclusion constraints.  If it isn't, there's no harm in just
      indexing the in-doubt tuple.
      
      Second, modify VACUUM FULL/CLUSTER to suppress reverifying
      uniqueness/exclusion constraint properties while rebuilding indexes of
      the target relation.  This is reasonable because these commands aren't
      meant to deal with corrupted-data situations.  Constraint properties
      will still be rechecked when an index is rebuilt by a REINDEX command.
      
      This gets us out of the problem that new-style VACUUM FULL would often
      wait for other transactions while holding exclusive lock on a system
      catalog, leading to probable deadlock because those other transactions
      need to look at the catalogs too.  Although the real ultimate cause of
      the problem is a debatable choice to release locks early after modifying
      system catalogs, changing that choice would require pretty serious
      analysis and is not something to be undertaken lightly or on a tight
      schedule.  The present patch fixes the problem in a fairly reasonable
      way and should also improve the speed of VACUUM FULL/CLUSTER a little bit.
      1ddc2703
    • T
      Looks like we need #include <sys/stat.h> here on some · 1c05b0b4
      Tom Lane 提交于
      platforms.  Per buildfarm.
      1c05b0b4
    • T
      Create a "relation mapping" infrastructure to support changing the relfilenodes · b9b8831a
      Tom Lane 提交于
      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
  4. 06 2月, 2010 8 次提交
  5. 05 2月, 2010 5 次提交
  6. 04 2月, 2010 7 次提交
  7. 03 2月, 2010 1 次提交