> I have thought of a further refinement to the patch I produced
> yesterday. Assume that there are multiple waiters blocked on (eg)
> BufMgrLock. After we release the first one, we want the currently
> running process to be able to continue acquiring and releasing the lock
> for as long as its time quantum holds out. But in the patch as given,
> each acquire/release cycle releases another waiter. This is probably
> not good.
> Attached is a modification that prevents additional waiters from being
> released until the first releasee has a chance to run and acquire the
> lock. Would you try this and see if it's better or not in your test
> cases? It doesn't seem to help on a single CPU, but maybe on multiple
> CPUs it'll make a difference.
> To try to make things simple, I've attached the mod in two forms:
> as a diff from current CVS, and as a diff from the previous patch.
Ok, here is a pgbench (-s 10) result on an AIX 5L box (4 way).
"7.2 with patch" is for the previous patch. "7.2 with patch (revised)"
is for the this patch. I see virtually no improvement. Please note
that xy axis are now in log scale.
Description: image/png (7.9 KB) (inlined above)
In response to
pgsql-hackers by date
|Next:||From: Bruce Momjian||Date: 2002-01-03 03:24:26|
|Subject: Re: Bulkloading using COPY - ignore duplicates?|
|Previous:||From: Bruce Momjian||Date: 2002-01-03 01:17:38|
|Subject: Re: software license question|
pgsql-odbc by date
|Next:||From: Bruce Momjian||Date: 2002-01-03 07:20:16|
|Subject: Re: LWLock contention: I think I understand the problem|
|Previous:||From: Christopher Kings-Lynne||Date: 2002-01-02 03:36:53|
|Subject: Re: [SQL] An easy question about creating a primary key|