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>
>
>
> 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.
>
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