1. 09 11月, 2001 1 次提交
  2. 06 11月, 2001 1 次提交
  3. 28 10月, 2001 1 次提交
  4. 25 10月, 2001 1 次提交
  5. 02 10月, 2001 1 次提交
  6. 30 9月, 2001 2 次提交
  7. 29 9月, 2001 1 次提交
    • T
      Implement new 'lightweight lock manager' that's intermediate between · 499abb0c
      Tom Lane 提交于
      existing lock manager and spinlocks: it understands exclusive vs shared
      lock but has few other fancy features.  Replace most uses of spinlocks
      with lightweight locks.  All remaining uses of spinlocks have very short
      lock hold times (a few dozen instructions), so tweak spinlock backoff
      code to work efficiently given this assumption.  All per my proposal on
      pghackers 26-Sep-01.
      499abb0c
  8. 22 9月, 2001 1 次提交
    • T
      Add an overall timeout on the client authentication cycle, so that · 35b7601b
      Tom Lane 提交于
      a hung client or lost connection can't indefinitely block a postmaster
      child (not to mention the possibility of deliberate DoS attacks).
      Timeout is controlled by new authentication_timeout GUC variable,
      which I set to 60 seconds by default ... does that seem reasonable?
      35b7601b
  9. 07 9月, 2001 1 次提交
  10. 05 9月, 2001 1 次提交
    • T
      Fix code so that we recover cleanly if there are no free semaphores · 76355439
      Tom Lane 提交于
      available in freeSemMap.  As noted by Tatsuo, this is now a likely
      scenario for detecting MaxBackends-exceeded; if MaxBackends is a multiple
      of PROC_NSEMS_PER_SET then we will fail here and not in sinval.c.  The
      cleanup path did not work correctly before, anyway.
      76355439
  11. 04 9月, 2001 1 次提交
  12. 07 7月, 2001 1 次提交
  13. 17 6月, 2001 1 次提交
    • T
      Tweak startup sequence so that running out of PROC array slots is · 2917f0a5
      Tom Lane 提交于
      detected sooner in backend startup, and is treated as an expected error
      (it gives 'Sorry, too many clients already' now).  This allows us not
      to have to enforce the MaxBackends limit exactly in the postmaster.
      Also, remove ProcRemove() and fold its functionality into ProcKill().
      There's no good reason for a backend not to be responsible for removing
      its PROC entry, and there are lots of good reasons for the postmaster
      not to be touching shared-memory data structures.
      2917f0a5
  14. 25 5月, 2001 2 次提交
  15. 22 3月, 2001 2 次提交
  16. 27 1月, 2001 1 次提交
  17. 25 1月, 2001 2 次提交
  18. 23 1月, 2001 1 次提交
    • T
      Clean up lockmanager data structures some more, in preparation for planned · e84c4290
      Tom Lane 提交于
      rewrite of deadlock checking.  Lock holder objects are now reachable from
      the associated LOCK as well as from the owning PROC.  This makes it
      practical to find all the processes holding a lock, as well as all those
      waiting on the lock.  Also, clean up some of the grottier aspects of the
      SHMQueue API, and cause the waitProcs list to be stored in the intuitive
      direction instead of the nonintuitive one.  (Bet you didn't know that
      the code followed the 'prev' link to get to the next waiting process,
      instead of the 'next' link.  It doesn't do that anymore.)
      e84c4290
  19. 17 1月, 2001 1 次提交
  20. 16 1月, 2001 1 次提交
  21. 14 1月, 2001 1 次提交
  22. 13 1月, 2001 1 次提交
    • T
      Add more critical-section calls: all code sections that hold spinlocks · 6162432d
      Tom Lane 提交于
      are now critical sections, so as to ensure die() won't interrupt us while
      we are munging shared-memory data structures.  Avoid insecure intermediate
      states in some code that proc_exit will call, like palloc/pfree.  Rename
      START/END_CRIT_CODE to START/END_CRIT_SECTION, since that seems to be
      what people tend to call them anyway, and make them be called with () like
      a function call, in hopes of not confusing pg_indent.
      I doubt that this is sufficient to make SIGTERM safe anywhere; there's
      just too much code that could get invoked during proc_exit().
      6162432d
  23. 09 1月, 2001 1 次提交
  24. 22 12月, 2000 1 次提交
    • T
      Revise lock manager to support "session level" locks as well as "transaction · 6cc842ab
      Tom Lane 提交于
      level" locks.  A session lock is not released at transaction commit (but it
      is released on transaction abort, to ensure recovery after an elog(ERROR)).
      In VACUUM, use a session lock to protect the master table while vacuuming a
      TOAST table, so that the TOAST table can be done in an independent
      transaction.
      
      I also took this opportunity to do some cleanup and renaming in the lock
      code.  The previously noted bug in ProcLockWakeup, that it couldn't wake up
      any waiters beyond the first non-wakeable waiter, is now fixed.  Also found
      a previously unknown bug of the same kind (failure to scan all members of
      a lock queue in some cases) in DeadLockCheck.  This might have led to failure
      to detect a deadlock condition, resulting in indefinite waits, but it's
      difficult to characterize the conditions required to trigger a failure.
      6cc842ab
  25. 19 12月, 2000 1 次提交
  26. 18 12月, 2000 1 次提交
  27. 12 12月, 2000 1 次提交
  28. 11 12月, 2000 1 次提交
  29. 29 11月, 2000 1 次提交
    • T
      Significant cleanups in SysV IPC handling (shared mem and semaphores). · c715fdea
      Tom Lane 提交于
      IPC key assignment will now work correctly even when multiple postmasters
      are using same logical port number (which is possible given -k switch).
      There is only one shared-mem segment per postmaster now, not 3.
      Rip out broken code for non-TAS case in bufmgr and xlog, substitute a
      complete S_LOCK emulation using semaphores in spin.c.  TAS and non-TAS
      logic is now exactly the same.
      When deadlock is detected, "Deadlock detected" is now the elog(ERROR)
      message, rather than a NOTICE that comes out before an unhelpful ERROR.
      c715fdea
  30. 07 10月, 2000 1 次提交
    • B
      The beos port in the source tree doesn't even compile. and even · 7ea8403c
      Bruce Momjian 提交于
      after that dynamic loading isn't working and shared memory handling is
      broken.
      
              Attached with this message, there is a Zip file which contain :
      
              * beos.diff = patch file generated with difforig
              * beos = folder with beos support files which need to be moved in /
      src/backend/port
              * expected = foler with three file for message and precision
      difference in regression test
              * regression.diff = rule problem (need to kill the backend manualy)
              * dynloader = dynloader files (they are also in the pacth files,
      but there is so much modification that I have join full files)
      
              Everything works except a problem in 'rules' Is there some problems
      with rules in the current tree ? It used to works with last week tree.
      
      Cyril VELTER
      7ea8403c
  31. 03 10月, 2000 3 次提交
  32. 29 8月, 2000 1 次提交
  33. 28 8月, 2000 1 次提交
  34. 31 7月, 2000 1 次提交