Re: Concurrency in an RDB

From: NENASHI, Tegiri <tnmail42_at_gmail.com>
Date: Tue, 19 Dec 2006 15:13:34 +0100 (CET)
Message-ID: <Xns989E5E0814DDCasdgba_at_194.177.96.26>


"David" <davidbl_at_iinet.net.au> wrote in news:1166530519.065982.45910_at_a3g2000cwd.googlegroups.com:

> 
> NENASHI, Tegiri wrote:

>> "David" <davidbl_at_iinet.net.au> wrote in
>> news:1166489213.076542.73990_at_79g2000cws.googlegroups.com:
>>
>> > NENASHI, Tegiri wrote:
>> >> "David" <davidbl_at_iinet.net.au> wrote in
>> >> news:1166446464.885673.257380_at_f1g2000cwa.googlegroups.com:
>> >>
>> > [snip]
>> >
>> >> > Consider that 50% of the individual transactions break the
>> >> > constraint. Then batching won't help. Eg try a batch of size 2.
>> >> > Expectation value of number of compiles per batch = 0.25*1 +
>> >> > 0.25*2 + 0.5*3 = 2.25, which is actually worse than not batching
>> >> > at all.
>> >> >
>> >>
>> >> How it is possible that the expectation is 2.25 ? It is 0.25*1 +
>> >> 0.25*1 + 0.25*2 = 1 -- one is incorrect two times and two are
>> >> incorect one time. It is the same like with individual arrival
>> >> and it is not surprising because the model of probability is the
>> >> same.
>> >
>> > My reasoning was as follows... The batch consists of two
>> > transactions T1,T2.
>> >
>> > If both transactions are valid then only one compile is needed (to
>> > check the entire batch) but this only occurs 25% of the time.
>>
>> Very well. But I do not understand what it means to compile the
>> entire batch. If the batch has two transactions one needs two
>> compiles, or may be three compiles two for each transaction and one
>> for the batch why only one compile ?
> 
> Apply T1 then T2, then compile the end result.  If we are lucky and
> the compile succeeds, both transactions have been validated with only
> one compile.  This assumes two wrongs haven't made a right!
> 

>> > Otherwise it is necessary to compile after applying only T1. If
>> > this succeeds then we deduce that T2 is bad. This occurs 25% of
>> > the time, and required two compiles.
>>
>> It is the same -- three or two compiles because it does not matter if
>> the transaction is bad or it is good.
>>
>> >
>> > Otherwise we have to compensate (or discard) T1. Since we have
>> > already performed two compiles and we haven't done anything to
>> > determine the correctness of T2, this case (which occurs 50% of the
>> > time) requires 3 compiles.
>>
>> I do not understand. Perhaps you describe again what is the
>> transaction compile and when it takes place and why you need the
>> compiles for the entire batch plus compiles for the individual
>> transactions.
>>
>> SO far I see from your words that the number of compiles does not
>> depend of if transaction is bad or good because the compile is needed
>> always, so the percent of bad transactions does not play a role.
>
> If compiling T1+T2 fails [#1],

It is impossible to see what you mean because you have not responded to:  what the compile of transaction is. Why compile(T1+T2) is diffrent of compile(T1), compile(T2) ? What is the compile ? Received on Tue Dec 19 2006 - 15:13:34 CET

Original text of this message