Re: Informix vs. Sybase vs. Oracle vs. (gasp) MS SQL Server
Date: 1997/12/09
Message-ID: <66knes$h1u_at_cello.hpl.hp.com>#1/1
In article <MYJ26DA7yyg0EwI1_at_smooth1.demon.co.uk>,
David Williams <djw_at_smooth1.demon.co.uk> wrote:
>In article <yutra7x9dht.fsf_at_mew.corp.sgi.com>, Pablo Sanchez
><pablo_at_sgi.com> writes
>>>>>>> "Michael" == Michael Segel <Mikey_at_NOSPAM.King.of.MyDomain.NOSPAM.Segel.com
>>> writes:
>>Michael>
>>Michael> [ examples deleted ]
>>Michael>
>>Michael> True, you can write these with page level locks,
>>Michael> however you won't get the performance, and you will
>>Michael> have to write extra code to compensate.
>>
>>What do you base your assertion that "you won't get the
>>performance"? The applications you talked about are all
>>applications that require a highly tuned application in
>>order to get excellent performance.
>>
>
> Imagine 1 page with 2 rows one it.
>
> 1. Page level locking
>
> User A updates row 1
> At the same time user B updates row 2. User B has to wait for
> User B to commit.
>
> 2. With row level locking
> User A updates row 1
> User B updates row 2 (with no waiting).
>
> How can 1 be faster than 2 if user B has to wait?
>
>> For a finely tuned application, row level locking
> UNIX Systems for Modern Architectures
>> does *not* matter.
> Lock granularity is still a problem. Why do UNIX kernels lock
> individual files and data structures rather than having one large
> kernel lock? Try reading
>
Well one large kernel lock would be equivalent to locking the
entire database! I don't think page level locking does this :).
Locking individual files is like a table lock, so looking pretty
good so far. Locking individual data structures is a page lock
so still looking good. What is the issue again? Row-level locking
would be like locking every single cache-line in the kernel. I
don't know of any OS that is dumb enough to do that.
> Sysmmetric Multiprocessing and Caching for Kernel Programmers
> by Curt Schimmel
> Addison-Wesley
> ISBN 0-201-63338-8
>
> "If the processes in the application job mix use seperate kernel
> resources, each of whose data structures are protected by separate
> locks, then these processes will not contend for the same locks and
> will be able to run simultanueously on different CPUs, whether they
> are in user or kernel mode"
>
> Translate to databases and internal data structures.
>
See above for the translation.
--Chris
My own views
Received on Tue Dec 09 1997 - 00:00:00 CET