Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!
Transakcijos
Transakcija - tai tokia skaičiavimų rūšis, kur nepasibaigus kažkuriems skaičiavimams, su jais negalima daryti nieko, nes kitaip bus kažkas tai negerai. Tai tada būna atidaroma transakcija, užblokuojama viskas visiems, padaromi kažkokie pakeitimai/paskaičiavimai, o tada viskas užbaigiama ir transakcija uždaroma. Transakcijos apsaugo nuo visokių susimakalavimų, kai du skaičiavimai vienu metu kažką sumanipuliuoja ir gaunasi nesąmonė. Pats vartotojas transakcijos nemato, nes viskas būna suprogramuota taip, kad vyktų lyg ir normaliai, bet transakcijas daro programos.
Transakcijas labai mėgsta kur papuola dėlioti visokių brangių sustemų su Oracle, DB2 ar kitomis prabangiomis reliacinėmis duomenų bazėsmis programuotojai, nes tada viskas saugu ir nėra tikimybės, kad kažkas pasigadins.
Deja, transakcija reiškia, kad jei keisite kažkokį dalyką, visi kiti lauks eilėje. O jei dalykų bus pripainiota daug ir viskas su viskuo susiję - tai gali būti, kad kol tie eilėje lauks, tai jie ir užsilauks. O paskui kiti užsilauks, ir treti, ir ketvirti, o galų gale gausis taip, kad kažką darėt vienur, o jūsų transakcija užblokavo kažką kitur, kur net neįtariat ir rezultate niekas negali nieko daryti tol, kol jūs nepabaigėt kokios nors nesąmonės.
O jau paskui bus taip, kad jūs atidarysit savo transakciją ir nieko negalėsit padaryti, nes dėl stabdymo viskas bus užkibę, bet jūsų atidaryta transakcija užkabins viską krūvai kitų žmonių, o jiems irgi viskas taip užkibs, dėl ko ir jums užkibs, ir taip toliau. Tai tada gaunasi mirties spiralė, kur ryte gal sistema dar biškį veikia, paskui pasidaro neveikianti išvis, tada adminai ją perkraudinėja, po perkrovimo ji kurį laiką vėl veikia, kol pasidaro neveikianti ir taip toliau, o galų gale vakare, kai visi baigia darbus ir išsiskirsto, sistema vėl pasidaro galima naudotis, nes senos transakcijos nusitaimautina.
Paprastai sistemą kuriantys programuotojai ir prižiūrintys adminai tada sako, kad viskas gerai, resursų užtenka, procesorius neapkrautas, ko jūs norit, atsikabinkit nuo mūsų, nes viskas čia gerai.
Ale kaip sako visokie užkietėję ir labai seni programeriai - tai transakcijos yra tas dalykas, kuris multiprocesinę sistemą sugeba efektyviai paversti į vieno vartotojo ir vieno proceso sistemą, dirbančią taip lėtai, kad netgi ir tam vienam vartotojui nieko daryti nesigautų.
Deja, kai kuriose srityse, kaip pvz., kur būna finansų sektorius, be transakcijų apseitii nėra įmanoma, nes jei su jūsų sąskaita kažkas vyksta, tai netgi teoriškai negalima, kad to vyksmo vidury kažkas įsikištų ir darytų kažką kito. Tai todėl tos sistemos paprastai labai smarkiai stabdo. Kad jos nestabdytų, būna samdomi kraštutinai brangūs programuotojai, kurie tų transakcijų nededa kur papuola ir sugeba atsekti ir panaikinti nereikalingas transakcijų grandines, bet visvien prireikia pirkti brangius mainfreimus, nes kitaip nevyksta.
Kaip sako gandai, ryškiausias ir plačiausiai žinomas absurdiškai naudotų transakcijų pavyzdys - tai legendarinė e-sveikata, kuri dirba taip beviltiškai lėtai būtent dėl to, kad visur totaliai blokuojasi kas papuola ir joks resursų didinimas čia nebepadeda.