1. 14 1月, 2008 1 次提交
  2. 02 1月, 2008 1 次提交
  3. 16 11月, 2007 2 次提交
  4. 30 10月, 2007 1 次提交
  5. 27 10月, 2007 1 次提交
  6. 26 10月, 2007 1 次提交
  7. 25 10月, 2007 3 次提交
  8. 24 9月, 2007 3 次提交
    • A
      Avoid having autovacuum read pgstats data too many times in quick succession. · 45cbdaa0
      Alvaro Herrera 提交于
      This is problematic for the autovac launcher when there are many databases,
      so we keep data for a full second before reading it again.
      45cbdaa0
    • T
      Simplify and rename some GUC variables, per various recent discussions: · 48f7e643
      Tom Lane 提交于
      * stats_start_collector goes away; we always start the collector process,
      unless prevented by a problem with setting up the stats UDP socket.
      
      * stats_reset_on_server_start goes away; it seems useless in view of the
      availability of pg_stat_reset().
      
      * stats_block_level and stats_row_level are merged into a single variable
      "track_counts", which controls all reports sent to the collector process.
      
      * stats_command_string is renamed to track_activities.
      
      * log_autovacuum is renamed to log_autovacuum_min_duration to better reflect
      its meaning.
      
      The log_autovacuum change is not a compatibility issue since it didn't exist
      before 8.3 anyway.  The other changes need to be release-noted.
      48f7e643
    • T
      Make autovacuum report the start time of its current activity in · ea72d37f
      Tom Lane 提交于
      pg_stat_activity.  Per gripe from Jim Nasby.
      ea72d37f
  9. 13 9月, 2007 1 次提交
  10. 12 9月, 2007 1 次提交
    • T
      Make sure that open hash table scans are cleaned up when bgwriter tries to · f181f9e1
      Tom Lane 提交于
      recover from elog(ERROR).  Problem was created by introduction of hash seq
      search tracking awhile back, and affects all branches that have bgwriter;
      in HEAD the disease has snuck into autovacuum and walwriter too.  (Not sure
      that the latter two use hash_seq_search at the moment, but surely they might
      someday.)  Per report from Sergey Koposov.
      f181f9e1
  11. 03 8月, 2007 1 次提交
  12. 02 7月, 2007 1 次提交
    • T
      Reduce the maximum sleep interval in the autovac launcher to 1 second, · bce7bacd
      Tom Lane 提交于
      so that it responds to SIGQUIT reasonably promptly even on machines where
      SA_RESTART signals restart a sleep from scratch.  (This whole area could
      stand some rethinking, but for now make it work like the other processes
      do.)  Also some marginal stylistic cleanups.
      bce7bacd
  13. 01 7月, 2007 1 次提交
  14. 30 6月, 2007 2 次提交
  15. 26 6月, 2007 1 次提交
  16. 14 6月, 2007 1 次提交
  17. 09 6月, 2007 2 次提交
  18. 31 5月, 2007 1 次提交
    • T
      Make large sequential scans and VACUUMs work in a limited-size "ring" of · d526575f
      Tom Lane 提交于
      buffers, rather than blowing out the whole shared-buffer arena.  Aside from
      avoiding cache spoliation, this fixes the problem that VACUUM formerly tended
      to cause a WAL flush for every page it modified, because we had it hacked to
      use only a single buffer.  Those flushes will now occur only once per
      ring-ful.  The exact ring size, and the threshold for seqscans to switch into
      the ring usage pattern, remain under debate; but the infrastructure seems
      done.  The key bit of infrastructure is a new optional BufferAccessStrategy
      object that can be passed to ReadBuffer operations; this replaces the former
      StrategyHintVacuum API.
      
      This patch also changes the buffer usage-count methodology a bit: we now
      advance usage_count when first pinning a buffer, rather than when last
      unpinning it.  To preserve the behavior that a buffer's lifetime starts to
      decrease when it's released, the clock sweep code is modified to not decrement
      usage_count of pinned buffers.
      
      Work not done in this commit: teach GiST and GIN indexes to use the vacuum
      BufferAccessStrategy for vacuum-driven fetches.
      
      Original patch by Simon, reworked by Heikki and again by Tom.
      d526575f
  19. 08 5月, 2007 1 次提交
  20. 04 5月, 2007 1 次提交
  21. 03 5月, 2007 1 次提交
  22. 02 5月, 2007 1 次提交
  23. 19 4月, 2007 1 次提交
  24. 17 4月, 2007 1 次提交
    • A
      Add a multi-worker capability to autovacuum. This allows multiple worker · e2a186b0
      Alvaro Herrera 提交于
      processes to be running simultaneously.  Also, now autovacuum processes do not
      count towards the max_connections limit; they are counted separately from
      regular processes, and are limited by the new GUC variable
      autovacuum_max_workers.
      
      The launcher now has intelligence to launch workers on each database every
      autovacuum_naptime seconds, limited only on the max amount of worker slots
      available.
      
      Also, the global worker I/O utilization is limited by the vacuum cost-based
      delay feature.  Workers are "balanced" so that the total I/O consumption does
      not exceed the established limit.  This part of the patch was contributed by
      ITAGAKI Takahiro.
      
      Per discussion.
      e2a186b0
  25. 29 3月, 2007 1 次提交
    • A
      Add the "recheck" logic to autovacuum worker code. The worker first builds · 7d4c9a57
      Alvaro Herrera 提交于
      its table list and then rechecks pgstat before vacuuming each table to
      verify that no one has vacuumed the table in the meantime.
      
      In the current autovacuum world this only means that a worker will not
      vacuum a table that a user has vacuumed manually after the worker started.
      When support for multiple autovacuum workers is introduced, this will reduce
      the probability of simultaneous workers on the same database doing redundant
      work.
      7d4c9a57
  26. 28 3月, 2007 1 次提交
  27. 24 3月, 2007 4 次提交
  28. 13 3月, 2007 1 次提交
    • T
      First phase of plan-invalidation project: create a plan cache management · b9527e98
      Tom Lane 提交于
      module and teach PREPARE and protocol-level prepared statements to use it.
      In service of this, rearrange utility-statement processing so that parse
      analysis does not assume table schemas can't change before execution for
      utility statements (necessary because we don't attempt to re-acquire locks
      for utility statements when reusing a stored plan).  This requires some
      refactoring of the ProcessUtility API, but it ends up cleaner anyway,
      for instance we can get rid of the QueryContext global.
      
      Still to do: fix up SPI and related code to use the plan cache; I'm tempted to
      try to make SQL functions use it too.  Also, there are at least some aspects
      of system state that we want to ensure remain the same during a replan as in
      the original processing; search_path certainly ought to behave that way for
      instance, and perhaps there are others.
      b9527e98
  29. 07 3月, 2007 1 次提交
  30. 16 2月, 2007 1 次提交
    • A
      Restructure autovacuum in two processes: a dummy process, which runs · 18206509
      Alvaro Herrera 提交于
      continuously, and requests vacuum runs of "autovacuum workers" to postmaster.
      The workers do the actual vacuum work.  This allows for future improvements,
      like allowing multiple autovacuum jobs running in parallel.
      
      For now, the code keeps the original behavior of having a single autovac
      process at any time by sleeping until the previous worker has finished.
      18206509