1. 09 May, 2012 3 commits
    • Bruce Momjian's avatar
    • Tom Lane's avatar
      Reduce idle power consumption of stats collector process. · 49340037
      Tom Lane authored
      Latch-ify the stats collector, so that it does not need an arbitrary wakeup
      cycle to check for postmaster death.  The incremental savings in idle power
      is pretty marginal, since we only had it waking every two seconds; but I
      believe that this patch may also improve the collector's performance under
      load, by reducing the number of kernel calls made per message when messages
      are arriving constantly (we now avoid a select/poll call except when we
      need to sleep).  The change also reduces the time needed for a normal
      database shutdown on platforms where signals don't interrupt select().
      49340037
    • Tom Lane's avatar
      Reduce idle power consumption of walwriter and checkpointer processes. · 5461564a
      Tom Lane authored
      This patch modifies the walwriter process so that, when it has not found
      anything useful to do for many consecutive wakeup cycles, it extends its
      sleep time to reduce the server's idle power consumption.  It reverts to
      normal as soon as it's done any successful flushes.  It's still true that
      during any async commit, backends check for completed, unflushed pages of
      WAL and signal the walwriter if there are any; so that in practice the
      walwriter can get awakened and returned to normal operation sooner than the
      sleep time might suggest.
      
      Also, improve the checkpointer so that it uses a latch and a computed delay
      time to not wake up at all except when it has something to do, replacing a
      previous hardcoded 0.5 sec wakeup cycle.  This also is primarily useful for
      reducing the server's power consumption when idle.
      
      In passing, get rid of the dedicated latch for signaling the walwriter in
      favor of using its procLatch, since that comports better with possible
      generic signal handlers using that latch.  Also, fix a pre-existing bug
      with failure to save/restore errno in walwriter's signal handlers.
      
      Peter Geoghegan, somewhat simplified by Tom
      5461564a
  2. 08 May, 2012 5 commits
  3. 07 May, 2012 4 commits
  4. 06 May, 2012 1 commit
  5. 05 May, 2012 1 commit
  6. 04 May, 2012 1 commit
    • Tom Lane's avatar
      Overdue code review for transaction-level advisory locks patch. · 71b9549d
      Tom Lane authored
      Commit 62c7bd31 had assorted problems, most
      visibly that it broke PREPARE TRANSACTION in the presence of session-level
      advisory locks (which should be ignored by PREPARE), as per a recent
      complaint from Stephen Rees.  More abstractly, the patch made the
      LockMethodData.transactional flag not merely useless but outright
      dangerous, because in point of fact that flag no longer tells you anything
      at all about whether a lock is held transactionally.  This fix therefore
      removes that flag altogether.  We now rely entirely on the convention
      already in use in lock.c that transactional lock holds must be owned by
      some ResourceOwner, while session holds are never so owned.  Setting the
      locallock struct's owner link to NULL thus denotes a session hold, and
      there is no redundant marker for that.
      
      PREPARE TRANSACTION now works again when there are session-level advisory
      locks, and it is also able to transfer transactional advisory locks to the
      prepared transaction, but for implementation reasons it throws an error if
      we hold both types of lock on a single lockable object.  Perhaps it will be
      worth improving that someday.
      
      Assorted other minor cleanup and documentation editing, as well.
      
      Back-patch to 9.1, except that in the 9.1 branch I did not remove the
      LockMethodData.transactional flag for fear of causing an ABI break for
      any external code that might be examining those structs.
      71b9549d
  7. 03 May, 2012 3 commits
    • Peter Eisentraut's avatar
      doc: Fix for too many brackets in command synopses on man pages · 1715ff11
      Peter Eisentraut authored
      The default for the choice attribute of the <arg> element is "opt",
      which would normally put the argument inside brackets.  But the DSSSL
      stylesheets contain a hack that treats <arg> directly inside <group>
      specially, so that <group><arg>-x</arg><arg>-y</arg></group> comes out
      as [ -x | -y ] rather than [ [-x] | [-y] ], which it would technically
      be.  But when building man pages, this doesn't work, and so the
      command synopses on the man pages contain lots of extra brackets.
      
      By putting choice="opt" or choice="plain" explicitly on every <arg>
      and <group> element, we avoid any toolchain dependencies like that,
      and it also makes it clearer in the source code what is meant.
      
      In passing, make some small corrections in the documentation about
      which arguments are really optional or not.
      1715ff11
    • Bruce Momjian's avatar
      Remove BSD/OS (BSDi) port. There are no known users upgrading to · ebcaa5fc
      Bruce Momjian authored
      Postgres 9.2, and perhaps no existing users either.
      ebcaa5fc
    • Bruce Momjian's avatar
  8. 02 May, 2012 9 commits
  9. 01 May, 2012 2 commits
  10. 30 Apr, 2012 6 commits
    • Peter Eisentraut's avatar
      Improve markup of cmdsynopsis elements · 4266509c
      Peter Eisentraut authored
      Add more markup in particular so that the command options appear
      consistently in monospace in the HTML output.
      
      On the vacuumdb reference page, remove listing all the possible
      options in the synopsis.  They have become too many now; we have the
      detailed options list for that.
      4266509c
    • Peter Eisentraut's avatar
      Fix display of <command> elements on man pages · 61c84b47
      Peter Eisentraut authored
      We had changed this from the default bold to monospace for all output
      formats, but for man pages, this creates visual inconsistencies, so
      revert to the default for man pages.
      61c84b47
    • Tom Lane's avatar
      Converge all SQL-level statistics timing values to float8 milliseconds. · 809e7e21
      Tom Lane authored
      This patch adjusts the core statistics views to match the decision already
      taken for pg_stat_statements, that values representing elapsed time should
      be represented as float8 and measured in milliseconds.  By using float8,
      we are no longer tied to a specific maximum precision of timing data.
      (Internally, it's still microseconds, but we could now change that without
      needing changes at the SQL level.)
      
      The columns affected are
      pg_stat_bgwriter.checkpoint_write_time
      pg_stat_bgwriter.checkpoint_sync_time
      pg_stat_database.blk_read_time
      pg_stat_database.blk_write_time
      pg_stat_user_functions.total_time
      pg_stat_user_functions.self_time
      pg_stat_xact_user_functions.total_time
      pg_stat_xact_user_functions.self_time
      
      The first four of these are new in 9.2, so there is no compatibility issue
      from changing them.  The others require a release note comment that they
      are now double precision (and can show a fractional part) rather than
      bigint as before; also their underlying statistics functions now match
      the column definitions, instead of returning bigint microseconds.
      809e7e21
    • Peter Eisentraut's avatar
      Mark ReThrowError() with attribute noreturn · 26471a51
      Peter Eisentraut authored
      All related functions were already so marked.
      26471a51
    • Robert Haas's avatar
      Remove duplicate word in comment. · 0d2235a2
      Robert Haas authored
      Noted by Peter Geoghegan.
      0d2235a2
    • Bruce Momjian's avatar
  11. 29 Apr, 2012 5 commits