1. 06 11月, 2006 1 次提交
    • T
      Fix recently-understood problems with handling of XID freezing, particularly · 48188e16
      Tom Lane 提交于
      in PITR scenarios.  We now WAL-log the replacement of old XIDs with
      FrozenTransactionId, so that such replacement is guaranteed to propagate to
      PITR slave databases.  Also, rather than relying on hint-bit updates to be
      preserved, pg_clog is not truncated until all instances of an XID are known to
      have been replaced by FrozenTransactionId.  Add new GUC variables and
      pg_autovacuum columns to allow management of the freezing policy, so that
      users can trade off the size of pg_clog against the amount of freezing work
      done.  Revise the already-existing code that forces autovacuum of tables
      approaching the wraparound point to make it more bulletproof; also, revise the
      autovacuum logic so that anti-wraparound vacuuming is done per-table rather
      than per-database.  initdb forced because of changes in pg_class, pg_database,
      and pg_autovacuum catalogs.  Heikki Linnakangas, Simon Riggs, and Tom Lane.
      48188e16
  2. 04 10月, 2006 1 次提交
  3. 03 9月, 2006 1 次提交
    • T
      Arrange for GetSnapshotData to copy live-subtransaction XIDs from the · 8fad2e3f
      Tom Lane 提交于
      PGPROC array into snapshots, and use this information to avoid visits
      to pg_subtrans in HeapTupleSatisfiesSnapshot.  This appears to solve
      the pg_subtrans-related context swap storm problem that's been reported
      by several people for 8.1.  While at it, modify GetSnapshotData to not
      take an exclusive lock on ProcArrayLock, as closer analysis shows that
      shared lock is always sufficient.
      Itagaki Takahiro and Tom Lane
      8fad2e3f
  4. 31 7月, 2006 1 次提交
  5. 30 7月, 2006 1 次提交
  6. 14 7月, 2006 2 次提交
  7. 19 6月, 2006 1 次提交
  8. 05 3月, 2006 1 次提交
  9. 16 12月, 2005 1 次提交
    • T
      Rethink prior patch to filter out dead backend entries from the pgstats · fb3dbdf9
      Tom Lane 提交于
      file.  The original code probed the PGPROC array separately for each PID,
      which was not good for large numbers of backends: not only is the runtime
      O(N^2) but most of it is spent holding ProcArrayLock.  Instead, take the
      lock just once and copy the active PIDs into an array, then use qsort
      and bsearch so that the lookup time is more like O(N log N).
      fb3dbdf9
  10. 12 12月, 2005 1 次提交
    • T
      Divide the lock manager's shared state into 'partitions', so as to · ec0baf94
      Tom Lane 提交于
      reduce contention for the former single LockMgrLock.  Per my recent
      proposal.  I set it up for 16 partitions, but on a pgbench test this
      gives only a marginal further improvement over 4 partitions --- we need
      to test more scenarios to choose the number of partitions.
      ec0baf94
  11. 23 11月, 2005 1 次提交
  12. 15 10月, 2005 1 次提交
  13. 21 8月, 2005 1 次提交
    • T
      Convert the arithmetic for shared memory size calculation from 'int' · 0007490e
      Tom Lane 提交于
      to 'Size' (that is, size_t), and install overflow detection checks in it.
      This allows us to remove the former arbitrary restrictions on NBuffers
      etc.  It won't make any difference in a 32-bit machine, but in a 64-bit
      machine you could theoretically have terabytes of shared buffers.
      (How efficiently we could manage 'em remains to be seen.)  Similarly,
      num_temp_buffers, work_mem, and maintenance_work_mem can be set above
      2Gb on a 64-bit machine.  Original patch from Koichi Suzuki, additional
      work by moi.
      0007490e
  14. 20 8月, 2005 1 次提交
  15. 01 8月, 2005 1 次提交
  16. 18 6月, 2005 1 次提交
  17. 20 5月, 2005 2 次提交