Tema: Re: Need nuomonės iš šono - DB
Autorius: Laimis
Data: 2011-12-09 19:50:26
Domas Mituzas rašė:
>> Transkacijos, tarkime, savo darbą padaro per kokią 1 ms.
>> Sušoka 100 konfliktuojančių ir laukia eilėje besidalindamos id paprastu
>> sakiniu; ar Audrys pasiūlytu būdu, ar mano (kai pirma atskiroje
>> lentelėje bandoma rezervuoti UPDATE'u, o vėliau pasitikrinama; tai iš
>> esmės analogiškas būdas).
>
> Palyginkim:
>
> BEGIN;
> SELECT ... FOR UPDATE;
> UPDATE ...;
> COMMIT;
>
> su:
>
> UPDATE ...;
> SELECT ...;

Lyginami ne visiškai tie būdai. Aš lyg ir nepriešpastačiau FOR UPDATE 
Audrys pasiūlytam variantui, kaip ir neteigiau, kad mano pasiūlytas 
būdas yra kuo nors pranašesnis, nors veikimo principas iš esmės 
analogiškas: pirma konkuruojančiai išsidalinami id, o toliau jau dirbama 
lygiagrečiai.

> Bėda tik ta, kad tokio tipo sistemos neturėtų gyvent RDBMS'uose
> dažniausiai, ir specialiai pabūrus sistemų programuotojui galima padaryt
> bent 10x efektyvesnes sistemas su norimu rezultatu.

Aš tai apskritai abejoju, kad ten tikrasis FIFO; juk ir tavo 
rekomenduotas būdas jau neberantuotų FIFO apdorojimo sekos, nes 
transakcijos persidengiančiai/lygiagrečiai konkuruotų. Ir nors galima 
įžvelgti taisyklę, kad „anksčiau pradėjai, anksčiau ir baigsi“, tačiau 
tai juk nėra garantuojama?