- 09 Apr, 2000 1 commit
-
-
Tom Lane authored
as a shared dirtybit for each shared buffer. The shared dirtybit still controls writing the buffer, but the local bit controls whether we need to fsync the buffer's file. This arrangement fixes a bug that allowed some required fsyncs to be missed, and should improve performance as well. For more info see my post of same date on pghackers.
-
- 31 Mar, 2000 1 commit
-
-
Tom Lane authored
In the event of an elog() while the mode was set to immediate write, there was no way for it to be set back to the normal delayed write. The mechanism was a waste of space and cycles anyway, since the only user was varsup.c, which could perfectly well call FlushBuffer directly. Now it does just that, and the notion of a write mode is gone.
-
- 26 Jan, 2000 1 commit
-
-
Bruce Momjian authored
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc to all files copyright Regents of Berkeley. Man, that's a lot of files.
-
- 17 Jan, 2000 1 commit
-
-
Hiroshi Inoue authored
Fix for TODO item * spinlock stuck problem when elog(FATAL) and elog(ERROR) inside bufmgr.
-
- 28 Sep, 1999 1 commit
-
-
Vadim B. Mikheev authored
-
- 24 Sep, 1999 1 commit
-
-
Tom Lane authored
* Buffer refcount cleanup (per my "progress report" to pghackers, 9/22). * Add links to backend PROC structs to sinval's array of per-backend info, and use these links for routines that need to check the state of all backends (rather than the slow, complicated search of the ShmemIndex hashtable that was used before). Add databaseOID to PROC structs. * Use this to implement an interlock that prevents DESTROY DATABASE of a database containing running backends. (It's a little tricky to prevent a concurrently-starting backend from getting in there, since the new backend is not able to lock anything at the time it tries to look up its database in pg_database. My solution is to recheck that the DB is OK at the end of InitPostgres. It may not be a 100% solution, but it's a lot better than no interlock at all...) * In ALTER TABLE RENAME, flush buffers for the relation before doing the rename of the physical files, to ensure we don't get failures later from mdblindwrt(). * Update TRUNCATE patch so that it actually compiles against current sources :-(. You should do "make clean all" after pulling these changes.
-
- 23 Sep, 1999 1 commit
-
-
Bruce Momjian authored
-
- 17 Jul, 1999 1 commit
-
-
Bruce Momjian authored
-
- 15 Jul, 1999 2 commits
-
-
Bruce Momjian authored
-
Bruce Momjian authored
-
- 25 May, 1999 1 commit
-
-
Bruce Momjian authored
-
- 13 Feb, 1999 1 commit
-
-
Bruce Momjian authored
-
- 15 Dec, 1998 1 commit
-
-
Vadim B. Mikheev authored
New code for locking buffer' context.
-
- 08 Oct, 1998 1 commit
-
-
Bruce Momjian authored
-
- 01 Sep, 1998 1 commit
-
-
Bruce Momjian authored
-
- 19 Aug, 1998 1 commit
-
-
Bruce Momjian authored
no longer returns buffer pointer, can be gotten from scan; descriptor; bootstrap can create multi-key indexes; pg_procname index now is multi-key index; oidint2, oidint4, oidname are gone (must be removed from regression tests); use System Cache rather than sequential scan in many places; heap_modifytuple no longer takes buffer parameter; remove unused buffer parameter in a few other functions; oid8 is not index-able; remove some use of single-character variable names; cleanup Buffer variables usage and scan descriptor looping; cleaned up allocation and freeing of tuples; 18k lines of diff;
-
- 15 Jun, 1998 1 commit
-
-
Bruce Momjian authored
-
- 24 Apr, 1998 1 commit
-
-
Bruce Momjian authored
-
- 26 Feb, 1998 1 commit
-
-
Bruce Momjian authored
-
- 24 Jan, 1998 1 commit
-
-
Bruce Momjian authored
-
- 13 Jan, 1998 1 commit
-
-
Marc G. Fournier authored
========================================== What follows is a set of diffs that cleans up the usage of BLCKSZ. As a side effect, the person compiling the code can change the value of BLCKSZ _at_their_own_risk_. By that, I mean that I've tried it here at 4096 and 16384 with no ill-effects. A value of 4096 _shouldn't_ affect much as far as the kernel/file system goes, but making it bigger than 8192 can have severe consequences if you don't know what you're doing. 16394 worked for me, _BUT_ when I went to 32768 and did an initdb, the SCSI driver broke and the partition that I was running under went to hell in a hand basket. Had to reboot and do a good bit of fsck'ing to fix things up. The patch can be safely applied though. Just leave BLCKSZ = 8192 and everything is as before. It basically only cleans up all of the references to BLCKSZ in the code. If this patch is applied, a comment in the config.h file though above the BLCKSZ define with warning about monkeying around with it would be a good idea. Darren darrenk@insightdist.com (Also cleans up some of the #includes in files referencing BLCKSZ.) ==========================================
-
- 08 Sep, 1997 3 commits
-
-
Bruce Momjian authored
-
Bruce Momjian authored
-
Bruce Momjian authored
Another PGINDENT run that changes variable indenting and case label indenting. Also static variable indenting.
-
- 07 Sep, 1997 1 commit
-
-
Bruce Momjian authored
-
- 19 Aug, 1997 1 commit
-
-
Bruce Momjian authored
-
- 28 Mar, 1997 1 commit
-
-
Marc G. Fournier authored
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.
-
- 16 Jan, 1997 1 commit
-
-
Vadim B. Mikheev authored
release buffer if called from WriteNoReleaseBuffer ())
-
- 14 Jan, 1997 1 commit
-
-
Vadim B. Mikheev authored
-
- 05 Nov, 1996 1 commit
-
-
Marc G. Fournier authored
-
- 03 Nov, 1996 1 commit
-
-
Marc G. Fournier authored
-
- 01 Nov, 1996 1 commit
-
-
Marc G. Fournier authored
include files properly...yet, slowly...
-
- 26 Oct, 1996 1 commit
-
-
Marc G. Fournier authored
-
- 20 Oct, 1996 1 commit
-
-
Marc G. Fournier authored
-
- 19 Oct, 1996 1 commit
-
-
Marc G. Fournier authored
files
-
- 28 Aug, 1996 1 commit
-
-
Marc G. Fournier authored
- centralizing to simplify the -I's required to compile
-
- 09 Jul, 1996 1 commit
-
-
Marc G. Fournier authored
-