> 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.
Attachment: bench.png
Description: image/png (7.9 KB) (inlined above)
In response to
Responses
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 |