1. 18 9月, 1997 1 次提交
  2. 09 9月, 1997 2 次提交
  3. 08 9月, 1997 1 次提交
  4. 07 9月, 1997 1 次提交
  5. 27 8月, 1997 1 次提交
  6. 20 8月, 1997 1 次提交
  7. 13 8月, 1997 1 次提交
  8. 06 8月, 1997 1 次提交
  9. 28 3月, 1997 1 次提交
    • M
      From: Dan McGuirk <mcguirk@indirect.com> · 159f8c63
      Marc G. Fournier 提交于
      Reply-To: hackers@hub.org, Dan McGuirk <mcguirk@indirect.com>
      To: hackers@hub.org
      Subject: [HACKERS] tmin writeback optimization
      
      I was doing some profiling of the backend, and noticed that during a certain
      benchmark I was running somewhere between 30% and 75% of the backend's CPU
      time was being spent in calls to TransactionIdDidCommit() from
      HeapTupleSatisfiesNow() or HeapTupleSatisfiesItself() to determine that
      changed rows' transactions had in fact been committed even though the rows'
      tmin values had not yet been set.
      
      When a query looks at a given row, it needs to figure out whether the
      transaction that changed the row has been committed and hence it should pay
      attention to the row, or whether on the other hand the transaction is still
      in progress or has been aborted and hence the row should be ignored.  If
      a tmin value is set, it is known definitively that the row's transaction
      has been committed.  However, if tmin is not set, the transaction
      referred to in xmin must be looked up in pg_log, and this is what the
      backend was spending a lot of time doing during my benchmark.
      
      So, implementing a method suggested by Vadim, I created the following
      patch that, the first time a query finds a committed row whose tmin value
      is not set, sets it, and marks the buffer where the row is stored as
      dirty.  (It works for tmax, too.)  This doesn't result in the boost in
      real time performance I was hoping for, however it does decrease backend
      CPU usage by up to two-thirds in certain situations, so it could be
      rather beneficial in high-concurrency settings.
      159f8c63
  10. 23 1月, 1997 1 次提交
  11. 01 1月, 1997 1 次提交
  12. 10 11月, 1996 1 次提交
  13. 09 11月, 1996 1 次提交
  14. 05 11月, 1996 2 次提交
  15. 04 11月, 1996 1 次提交
  16. 03 11月, 1996 1 次提交
  17. 31 10月, 1996 1 次提交
  18. 27 10月, 1996 1 次提交
  19. 21 10月, 1996 1 次提交
  20. 20 10月, 1996 2 次提交
  21. 18 10月, 1996 1 次提交
  22. 25 8月, 1996 1 次提交
    • M
      The patch does several things: · 208a30f2
      Marc G. Fournier 提交于
              It adds a WITH OIDS option to the copy command, which allows
      dumping and loading of oids.
      
              If a copy command tried to load in an oid that is greater than
      its current system max oid, the system max oid is incremented.  No
      checking is done to see if other backends are running and have cached
      oids.
      
              pg_dump as its first step when using the -o (oid) option, will
      copy in a dummy row to set the system max oid value so as rows are
      loaded in, they are certain to be lower than the system oid.
      
              pg_dump now creates indexes at the end to speed loading
      
      
      Submitted by:  Bruce Momjian <maillist@candle.pha.pa.us>
      208a30f2
  23. 09 7月, 1996 1 次提交