Re: how to build a database from scratch

From: paul c <toledobythesea_at_oohay.ac>
Date: Fri, 08 Dec 2006 23:47:55 GMT
Message-ID: <LQmeh.454235$R63.283325_at_pd7urf1no>


DBMS_Plumber wrote:
> paul c wrote:
>

>> I knew one advanced product, eg., it had a predicate lock
>>manager long before any of the big-name dbms'es, that was designed to
>>eliminate dba's.  Sales were abysmal, in part because dba's in big
>>corporations saw this as a big threat and did every thing they could to
>>keep the product out.

>
>
> Or, as is far more likely, your DBAs recognized that predicate locking
> schemes - which have a 30 years history of commercial and technical
> failure - simply cannot be used to enforce serializability over the
> following pair of queries.
>
> Q1:
>
> UPDATE Foo F
> FROM Bar B
> SET F.Val = 5
> WHERE B.X = :VALUE
> AND F.Y = B.Y;
>
> Q2:
>
> SELECT * FROM Foo F WHERE F.Y = 5;
>
> If you believe that you can, please explain how you can determine
> whether the predicates "F.Y = 5" and "F.Y = B.Y" collide? Which is why
> none of the big-name DBMSs use predicate based locking.
>

This is getting tiresome, but I'll bite - until about 1990, all the big-name products were locking based on physical block/page reads, ie., there weren't any logical locks taken until after IO was performed which meant there was no such thing as a logical lock manager in any of those products. Around 1990, DB2 certainly introduced a logical lock manager, eg., it locked values even if they didn't appear on disk at the time a pertinent statement was invoked.

> But so what? None of this has anything to do with how to implement
> B-Trees. Please keep to the topic.
>

Nor does any talk of physical behaviour, such as latency. Ditto.

p Received on Sat Dec 09 2006 - 00:47:55 CET

Original text of this message