On 12/9/11 6:23 PM, 2x50 wrote: > Cia prisipisinejimo vakarelis? OK. Nu kodėl, tiesiog daugiau informacijos pateikiu, gal ir ne visai į kontekstą dėmesį atkreipdamas :-) > > ********************************* >> 1. Serializable visada bus letesnis nei kiti isolation leveliai del >> vienos paprastos priezasties - DBVS turi atlikti papildomus veiksmus >> tam, kad serializuoti transakcijas. O papildomi veiksmai reikalauja >> laiko, galbut labai labai mazai, bet visvien jie jo prideda, ne atima. > > Tiesa pasakius prie kai kurių workloadų intuityviai 'lėtesni' leveliai > yra greitesni - nes nereik snapshotų perdarinėt kas kartą, etc :) > ********************************** > > Prie kokiu "kai kuriu"? > Kas slepiasi po "etc", konkreciau noretusi? Prie tų, kurie daro daug paprastų užklausų smarkiai konkurentiškoje aplinkoje, kurioje daug atvirų tranzakcijų - nuėjimas pasivaikščiot į B-medį yra lengvas juokelis, palyginus su perėjimu per visą tranzakcijų lentą kas kartą. Visa tai būna daroma (bent jau InnoDB) po vienu muteksu, tad sistemos pajėgumas gana greitai nukrenta. Atsidarius stabilų snapshotą tokių operacijų atlikinėt nebereikia. Locko sukūrimas daug nekainuoja, va atsitrenkimas į tą locką yra daug prabangesnė operacija, ypač jeigu susiformuoja grandinė ;-) > Kokiais kartai, veikianti vapyzdi galima pamatyti? Atsiprašau, norėjau pasakyt, kad greitas deadlocko pagavimas gali būti geriau už locko laukimą, žinoma geriau jų vengti iš viso :-) Ant šlykščių lockinimo situacijų galima užlipt net ir modifikuojant tik po vieną eilutę tranzakcijose, tad jau geriau mirt tranzakcijai iš viso tokiais atvejais. Iš ties, dabar kai pagalvoju, labai nedaug kas turi galimybę įjungt/išjungt deadlockų tikrinimą ant MySQL'o, tad galėjau šito ir nesakyt ;-) Domas