{"id":83337,"date":"2020-05-30T07:42:48","date_gmt":"2020-05-30T05:42:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh"},"modified":"2020-05-30T07:42:48","modified_gmt":"2020-05-30T05:42:48","slug":"k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh","title":{"rendered":"\u00c7far\u00eb mund t\u00eb sjell\u00eb dob\u00ebsimi i nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>P\u00ebrsh\u00ebndetje t\u00eb gjith\u00ebve. K\u00ebtu \u00ebsht\u00eb Vladislav Rodin. Aktualisht, un\u00eb jam drejtuesi i kursit 'Arkitekt i ngarkesave t\u00eb larta' n\u00eb OTUS, si dhe zhvilloj kurse mbi arkitektur\u00ebn e softuerit.<br \/>\n<\/i><br \/>\n<b><i>P\u00ebrve\u00e7 m\u00ebsimdh\u00ebnies, si\u00e7 mund ta keni v\u00ebn\u00eb re, un\u00eb merrem edhe me shkrimin e materialeve origjinale p\u00ebr blogun e OTUS n\u00eb Habr dhe sot do t\u00eb p\u00ebrkushtoj k\u00ebt\u00eb artikull p\u00ebr hapjen e kursit <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/fyWh\/\">\u00abPostgreSQL\u00bb<\/a><\/noindex>, p\u00ebr t\u00eb cilin po hapet regjistrimi n\u00eb k\u00ebt\u00eb moment.<\/i><\/b><\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb sjell\u00eb dob\u00ebsimi i nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/acfb562f4e72d657c09f5ce00acdf80b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Hyrje<\/h2>\n<p>\nN\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/494652\/\">her\u00ebn e kaluar<\/a><\/noindex> ne biseduam p\u00ebr at\u00eb se si transaksionet n\u00eb bazat e t\u00eb dh\u00ebnave sh\u00ebrbejn\u00eb p\u00ebr t\u00eb zgjidhur dy detyra: sigurimin e disponueshm\u00ebris\u00eb dhe qasjen n\u00eb t\u00eb dh\u00ebna n\u00eb nj\u00eb mjedis konkurrues. P\u00ebr t\u00eb p\u00ebrmbushur plot\u00ebsisht k\u00ebto detyra, transaksioni duhet t\u00eb ket\u00eb pronat ACID. Sot do t\u00eb flasim n\u00eb detaje p\u00ebr shkronj\u00ebn <b>I (izolimi)<\/b> n\u00eb k\u00ebt\u00eb akronim.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Izolimi<\/h2>\n<p>\nIzolimi zgjidh problemin e aksesit n\u00eb t\u00eb dh\u00ebna n\u00eb nj\u00eb mjedis konkurrues, duke ofruar n\u00eb fakt mbrojtje nga situatat e konkurrenc\u00ebs. Idealisht, izolimi n\u00ebnkupton serializimin, q\u00eb do t\u00eb thot\u00eb nj\u00eb pron\u00eb q\u00eb siguron q\u00eb rezultati i ekzekutimit t\u00eb transaksioneve n\u00eb paralele \u00ebsht\u00eb i nj\u00ebjt\u00eb me at\u00eb sikur ato t\u00eb ishin ekzekutuar n\u00eb m\u00ebnyr\u00eb sekondare. Problemi kryesor me k\u00ebt\u00eb pron\u00eb \u00ebsht\u00eb se \u00ebsht\u00eb shum\u00eb e v\u00ebshtir\u00eb t\u00eb sigurohet teknikisht dhe si pasoj\u00eb ndikon ndjesh\u00ebm n\u00eb performanc\u00ebn e sistemit. Kjo \u00ebsht\u00eb arsyeja pse izolimi shpesh leht\u00ebsohet, duke pranuar rreziqet e shp\u00ebrthimeve t\u00eb caktuara, p\u00ebr t\u00eb cilat do t\u00eb flasim m\u00eb posht\u00eb. Mund\u00ebsia e shfaqjes s\u00eb anomalive t\u00eb caktuara karakterizon pik\u00ebrisht nivelin e izolimit t\u00eb transaksioneve.<\/p>\n<p>Anomalit\u00eb m\u00eb t\u00eb njohura jan\u00eb: dirty read, non-repeatable read, phantom read, por n\u00eb t\u00eb v\u00ebrtet\u00eb ka edhe 5 t\u00eb tjera: dirty write, cursor lost update, lost update, read skew, write skew.<\/p>\n<h2>Dirty write<\/h2>\n<p>\nThelbi i anomalis\u00eb \u00ebsht\u00eb se transaksionet mund t\u00eb ridhani t\u00eb dh\u00ebna t\u00eb paprafruara.<\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb sjell\u00eb dob\u00ebsimi i nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/416d14593449b8b10d46c77804af772a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKy anomali \u00ebsht\u00eb e rrezikshme jo vet\u00ebm sepse t\u00eb dh\u00ebnat mund t\u00eb konflikti pas komitimit t\u00eb t\u00eb dyja transaksioneve (si\u00e7 \u00ebsht\u00eb n\u00eb figur\u00eb), por edhe sepse d\u00ebmton atomik\u00ebn: pasi ne do t\u00eb lejojm\u00eb q\u00eb t\u00eb dh\u00ebnat e pa komituara t\u00eb shkruhen p\u00ebrs\u00ebri, nuk \u00ebsht\u00eb e qart\u00eb se si t\u00eb rikthejm\u00eb nj\u00eb transaksion pa prekur t\u00eb tjer\u00ebt. <\/p>\n<p>Anomalia shp\u00ebtohet mjaft leht\u00eb: vendosim nj\u00eb bllokim p\u00ebr shkrimin para fillimit t\u00eb shkrimit, duke ndaluar transaksionet e tjera t\u00eb ndryshojn\u00eb regjistrimin derisa bllokimi t\u00eb hiqet. <\/p>\n<h2>Leximi i ndyr\u00eb<\/h2>\n<p>\nLeximi i ndyr\u00eb do t\u00eb thot\u00eb lexim i t\u00eb dh\u00ebnave t\u00eb pa komituara. <\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb sjell\u00eb dob\u00ebsimi i nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/133a48a7a1b91a085e3ade73de517e3d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProblemet lindin kur bazuar n\u00eb nj\u00eb most\u00ebr duhet t\u00eb b\u00ebhen disa veprime ose t\u00eb merren vendime.<\/p>\n<p>P\u00ebr t\u00eb korrigjuar anomalin\u00eb, mund t\u00eb vendosni nj\u00eb bllokim mbi leximin, por kjo do t\u00eb ndikoj\u00eb shum\u00eb n\u00eb performanc\u00eb. \u00cbsht\u00eb shum\u00eb m\u00eb e leht\u00eb t\u00eb thuhet se p\u00ebr rollback-in e transaksionit duhet t\u00eb ruhet gjendja origjinale e t\u00eb dh\u00ebnave (para fillimit t\u00eb shkrimit) n\u00eb sistem. Pse t\u00eb mos lexoni nga aty? \u00cbsht\u00eb mjaft e lir\u00eb, k\u00ebshtu q\u00eb shumica e databazave e eleminojn\u00eb leximin e ndotur si opsion t\u00eb paracaktuar. <\/p>\n<h2>P\u00ebrdit\u00ebsimi i humbur<\/h2>\n<p>\nP\u00ebrdit\u00ebsimi i humbur do t\u00eb thot\u00eb p\u00ebrdit\u00ebsime t\u00eb humbura, dhe p\u00ebrkthimi e shpreh mjaft sakt\u00ebsisht thelbin e problemit:<\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb sjell\u00eb dob\u00ebsimi i nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/bed92d27aa9ad2330de4a5fa37991bf6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00eb fakt, rezultati i transaksionit T2 u anulua. Kjo situat\u00eb zgjidhet me bllokime t\u00eb qarta ose t\u00eb paarritshme t\u00eb regjistrimeve. Pra, ne ose thjesht realizojm\u00eb nj\u00eb p\u00ebrdit\u00ebsim t\u00eb regjistrimit, dhe at\u00ebher\u00eb ndodh nj\u00eb bllokim i paarritsh\u00ebm, ose ne ekzekutojm\u00eb <b>select for update<\/b>, duke shkaktuar nj\u00eb bllokim p\u00ebr lexim dhe shkrim. Vini re se nj\u00eb operacion i till\u00eb \u00ebsht\u00eb mjaft i rreziksh\u00ebm: me leximin ton\u00eb \"t\u00eb pafajsh\u00ebm\", bllokojm\u00eb lexime t\u00eb tjera. Disa baza ofrojn\u00eb nj\u00eb <b>select for share<\/b>, i cili lejon leximin e t\u00eb dh\u00ebnave, por nuk lejon ndryshimin e tyre. <\/p>\n<h2>Cursor lost update<\/h2>\n<p>\nP\u00ebr nj\u00eb kontroll m\u00eb t\u00eb holl\u00eb, bazat mund t\u00eb ofrojn\u00eb mjete t\u00eb tjera, p\u00ebr shembull, kursori. Kursori \u00ebsht\u00eb nj\u00eb struktur\u00eb q\u00eb p\u00ebrmban nj\u00eb grup rreshtash dhe lejon iterimin mbi ta. <b>declare cursor_name for select_statement<\/b>. P\u00ebrmbajtja e kursit p\u00ebrshkruhet nga select. <\/p>\n<p>Pse nevojitet nj\u00eb kursor? E v\u00ebrteta \u00ebsht\u00eb se disa baza t\u00eb dh\u00ebnash ofrojn\u00eb bllokim p\u00ebr t\u00eb gjitha regjistrimet q\u00eb zgjidhen me select (stabiliteti i leximit), ose vet\u00ebm p\u00ebr at\u00eb regjist\u00ebr mbi t\u00eb cilin ndodhet p\u00ebr momentin kursori (stabiliteti i kursori). Me stabilitetin e kursori, zbatohet nj\u00eb bllokim i shkurt\u00ebr, q\u00eb lejon t\u00eb reduktohet numri i bllokimeve n\u00eb rast se ne po iterojm\u00eb p\u00ebrmes nj\u00eb seleksioni t\u00eb madh t\u00eb t\u00eb dh\u00ebnave. Prandaj, anomalin\u00eb e lost update e ve\u00e7ojm\u00eb p\u00ebr kursorin ve\u00e7mas.<\/p>\n<h2>Leximi jo-repetues<\/h2>\n<p>\nLeximi jo-repetues p\u00ebrfshin faktin se gjat\u00eb ekzekutimit t\u00eb transaksionit ton\u00eb, 2 lexime t\u00eb nj\u00ebjt\u00ebs regjistrim do t\u00eb \u00e7onin n\u00eb rezultate t\u00eb ndryshme, sepse nj\u00eb transaksion tjet\u00ebr nd\u00ebrhyri mes k\u00ebtyre dy leximeve, ndryshoi t\u00eb dh\u00ebnat tona dhe u komitet. <\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb sjell\u00eb dob\u00ebsimi i nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/7954d2fbcbda3904240eae39ba5e9bbc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPse \u00ebsht\u00eb kjo n\u00eb t\u00eb v\u00ebrtet\u00eb nj\u00eb problem? Imagjinoni se q\u00ebllimi i transaksionit T2 n\u00eb imazh \u00ebsht\u00eb t\u00eb zgjedh\u00eb t\u00eb gjitha produktet q\u00eb kan\u00eb \u00e7mimin m\u00eb t\u00eb vog\u00ebl se 150 u.e. Disa tjet\u00ebr e p\u00ebrdit\u00ebsoi \u00e7mimin n\u00eb 200 u.e. K\u00ebshtu, filtri i vendosur nuk funksionoi.<\/p>\n<p>Anomalit\u00eb e t\u00eb dh\u00ebnave pushojn\u00eb s\u00eb ndodhur me shtimin e bllokimeve me dy faza ose me p\u00ebrdorimin e mekanizmit MVCC, p\u00ebr t\u00eb cilin do t\u00eb doja t\u00eb flisja ve\u00e7mas. <\/p>\n<h2>Leximi fantazm\u00eb<\/h2>\n<p>\nLexohet si lexim i t\u00eb dh\u00ebnave q\u00eb jan\u00eb shtuar nga nj\u00eb transaksion tjet\u00ebr. <\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb sjell\u00eb dob\u00ebsimi i nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/4f5e62205bac4b9422f6631f171ca11d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi nj\u00eb shembull, mund t\u00eb v\u00ebzhgohet zgjedhja e gabuar e produktit m\u00eb t\u00eb lir\u00eb n\u00eb rastin e k\u00ebsaj anomalie. <\/p>\n<p>T\u00eb heq\u00ebsh dor\u00eb nga leximet fantazm\u00eb \u00ebsht\u00eb mjaft e v\u00ebshtir\u00eb. Nj\u00eb bllokim i zakonsh\u00ebm nuk \u00ebsht\u00eb i mjaftuesh\u00ebm, pasi nuk mund t\u00eb bllokojm\u00eb at\u00eb q\u00eb ende nuk ekziston. Sistemet 2PL p\u00ebrdorin bllokimin predikativ, nd\u00ebrsa sistemet MVCC p\u00ebrdorin planifikuesin e transaksioneve q\u00eb anulojn\u00eb transaksionet q\u00eb mund t\u00eb cenohej nga nj\u00eb insertim. T\u00eb dy mekanizmat jan\u00eb mjaft t\u00eb r\u00ebnd\u00eb.<\/p>\n<h2>Leximi i kthyer<\/h2>\n<p>\nLeximi i kthyer ndodh kur punojm\u00eb me disa tabela, p\u00ebrmbajtja e t\u00eb cilave duhet t\u00eb ndryshoj\u00eb n\u00eb m\u00ebnyr\u00eb koherente. <\/p>\n<p>Supozoni se kemi tabela q\u00eb p\u00ebrfaq\u00ebsojn\u00eb postime dhe metainformacionin e tyre:<\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb sjell\u00eb dob\u00ebsimi i nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/e15440e44c41c0ac15d2c3349d1fae4e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNj\u00eb transaksion lexon nga tabelat, nd\u00ebrsa tjetra i ndryshon ato:<\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb sjell\u00eb dob\u00ebsimi i nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/b89da5ae2d926ed0061cb90917d8a1ef.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi rezultat i ekzekutimit t\u00eb transaksionit T1, n\u00eb postimin me titull = Good, dhe updated_by = T2, q\u00eb p\u00ebrb\u00ebn nj\u00eb disfunksion. <\/p>\n<p>N\u00eb fakt, k\u00ebt\u00eb e quajm\u00eb lexim t\u00eb pa p\u00ebrs\u00ebritur, por brenda disa tabelave.<\/p>\n<p>P\u00ebr t\u00eb korrigjuar, T1 mund t\u00eb vendos\u00eb bllokime mbi t\u00eb gjitha rreshtat q\u00eb do t\u00eb lexoj\u00eb, q\u00eb nuk do t'i lejoj\u00eb transaksionit T2 t\u00eb ndryshoj\u00eb informacionin. N\u00eb rastin e MVCC, transaksioni T2 do t\u00eb anulohet. Mbrojtja ndaj k\u00ebsaj anomalie mund t\u00eb b\u00ebhet e r\u00ebnd\u00ebsishme n\u00ebse p\u00ebrdorim kursor\u00ebt. <\/p>\n<h2>Write skew<\/h2>\n<p>\nK\u00ebt\u00eb anomali \u00ebsht\u00eb m\u00eb e leht\u00eb ta shpjegojm\u00eb me nj\u00eb shembull: le t\u00eb supozojm\u00eb se n\u00eb sistemin ton\u00eb t\u00eb pakt\u00ebn nj\u00eb mjek duhet t\u00eb jet\u00eb n\u00eb sh\u00ebrbim, por t\u00eb dy mjek\u00ebt e vendos\u00ebn ta anulojn\u00eb sh\u00ebrbimin e tyre:<\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb sjell\u00eb dob\u00ebsimi i nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/7c6e4410224c3fcc9c564369535644e9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb sjell\u00eb dob\u00ebsimi i nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/8723c2dfe3e4b97ded601da2f89a77b1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAnomalia \u00e7oi n\u00eb faktin q\u00eb asnj\u00eb nga mjek\u00ebt nuk do t\u00eb dilte n\u00eb sh\u00ebrbim. Pse ndodhi k\u00ebshtu? Sepse transaksioni kontrolloi nj\u00eb kusht q\u00eb mund t\u00eb ishte shkelur nga nj\u00eb transaksion tjet\u00ebr, dhe p\u00ebr shkak t\u00eb izolimit ne nuk pam\u00eb k\u00ebt\u00eb ndryshim.<\/p>\n<p>\u00cbsht\u00eb e nj\u00ebjta si non-repeatable read. Si nj\u00eb mund\u00ebsi, select-at mund t\u00eb vendosin bllokime p\u00ebr k\u00ebto regjistra.<\/p>\n<p>Write skew dhe read skew jan\u00eb kombinime t\u00eb anomaliave t\u00eb m\u00ebparshme. Mund t\u00eb shqyrtojm\u00eb write skew, i cili n\u00eb thelb p\u00ebrb\u00ebn nj\u00eb phantom read. Le t\u00eb shqyrtojm\u00eb nj\u00eb tabel\u00eb, n\u00eb t\u00eb cil\u00ebn ka emrat e punonj\u00ebsve, pagat e tyre dhe projektin ku ata punojn\u00eb:<\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb sjell\u00eb dob\u00ebsimi i nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/2953d6148d07ded9e1a3d67428b14e67.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb sjell\u00eb dob\u00ebsimi i nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/f77800e316708944aa32a9095ae6b132.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi p\u00ebrfundim, ne marrim k\u00ebt\u00eb pamje: \u00e7do menaxher mendonte se ndryshimi i tij nuk do t\u00eb \u00e7onte n\u00eb tepric\u00eb t\u00eb buxhetit, prandaj ata b\u00ebn\u00eb ndryshime q\u00eb n\u00eb total rezultuan n\u00eb nj\u00eb tejkaluar t\u00eb buxhetit. <\/p>\n<p>Arsyeja e shfaqjes s\u00eb problemit \u00ebsht\u00eb e nj\u00ebjt\u00eb si te leximet fantazm\u00eb. <\/p>\n<h2>P\u00ebrfundimet<\/h2>\n<p>\nZbutja e nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb baz\u00ebn e t\u00eb dh\u00ebnave \u00ebsht\u00eb nj\u00eb kompromis midis siguris\u00eb dhe performanc\u00ebs, dhe zgjedhja e k\u00ebtij niveli duhet t\u00eb bazohet n\u00eb rreziqet potenciale p\u00ebr biznesin n\u00eb rast t\u00eb ndodhjes s\u00eb anomali t\u00eb caktuara.<\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/fyWh\/\">M\u00ebso m\u00eb shum\u00eb rreth kursit.<br \/>\n<\/a><\/noindex><\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/501294\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u044f\u0432\u043b\u044f\u044e\u0441\u044c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u043a\u0443\u0440\u0441\u0430 \u00ab\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a\u00bb \u0432 OTUS, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e \u043d\u0430 \u043a\u0443\u0440\u0441\u0430\u0445, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e. \u041f\u043e\u043c\u0438\u043c\u043e \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u043d\u0438\u044f, \u043a\u0430\u043a \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u0434\u043b\u044f \u0431\u043b\u043e\u0433\u0430 OTUS \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u044e\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u0445\u043e\u0447\u0443 \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0438\u0442\u044c \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u0443\u0440\u0441\u0430 \u00abPostgreSQL\u00bb, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":83338,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-83337","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u044f\u0432\u043b\u044f\u044e\u0441\u044c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u043a\u0443\u0440\u0441\u0430 \u00ab\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a\u00bb \u0432 OTUS, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e \u043d\u0430 \u043a\u0443\u0440\u0441\u0430\u0445, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e. \u041f\u043e\u043c\u0438\u043c\u043e \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u043d\u0438\u044f, \u043a\u0430\u043a \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u0434\u043b\u044f \u0431\u043b\u043e\u0433\u0430 OTUS \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u044e\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u0445\u043e\u0447\u0443 \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0438\u0442\u044c \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u0443\u0440\u0441\u0430 \u00abPostgreSQL\u00bb, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a \u0447\u0435\u043c\u0443 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u0438\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439 \u0432 \u0431\u0430\u0437\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u044f\u0432\u043b\u044f\u044e\u0441\u044c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u043a\u0443\u0440\u0441\u0430 \u00ab\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a\u00bb \u0432 OTUS, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e \u043d\u0430 \u043a\u0443\u0440\u0441\u0430\u0445, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e. \u041f\u043e\u043c\u0438\u043c\u043e \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u043d\u0438\u044f, \u043a\u0430\u043a \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u0434\u043b\u044f \u0431\u043b\u043e\u0433\u0430 OTUS \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u044e\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u0445\u043e\u0447\u0443 \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0438\u0442\u044c \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u0443\u0440\u0441\u0430 \u00abPostgreSQL\u00bb, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-30T05:42:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-30T05:42:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 \u00c7far\u00eb mund t\u00eb sjell\u00eb zbutja e nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave | ProHoster","description":"P\u00ebrsh\u00ebndetje t\u00eb gjith\u00ebve. K\u00ebtu \u00ebsht\u00eb Vladislav Rodin. Aktualisht un\u00eb jam drejtues i kursit \"Arkitekt i ngarkesave t\u00eb larta\" n\u00eb OTUS, si dhe m\u00ebsoj n\u00eb kurset q\u00eb p\u00ebrqendrohen n\u00eb arkitektur\u00ebn e softuerit. P\u00ebrve\u00e7 m\u00ebsimdh\u00ebnies, si\u00e7 mund ta keni v\u00ebn\u00eb re, un\u00eb merrem me shkruan materiale autor\u00ebsore p\u00ebr blogun OTUS n\u00eb habr dhe artikulli i sot\u00ebm e kam p\u00ebrgatitur p\u00ebr nisjen e kursit \"PostgreSQL\", q\u00eb tani po zhvillohet.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a \u0447\u0435\u043c\u0443 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u0438\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439 \u0432 \u0431\u0430\u0437\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u044f\u0432\u043b\u044f\u044e\u0441\u044c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u043a\u0443\u0440\u0441\u0430 \u00ab\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a\u00bb \u0432 OTUS, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e \u043d\u0430 \u043a\u0443\u0440\u0441\u0430\u0445, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e. \u041f\u043e\u043c\u0438\u043c\u043e \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u043d\u0438\u044f, \u043a\u0430\u043a \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u0434\u043b\u044f \u0431\u043b\u043e\u0433\u0430 OTUS \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u044e\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u0445\u043e\u0447\u0443 \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0438\u0442\u044c \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u0443\u0440\u0441\u0430 \u00abPostgreSQL\u00bb, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-30T05:42:48+00:00","article:modified_time":"2020-05-30T05:42:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"83337","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:20:28","updated":"2022-09-28 14:57:58"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/83337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=83337"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/83337\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/83338"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=83337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=83337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=83337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}