Assalamu alaikum. Vladislav Rodin yana tuntuɓar. A halin yanzu ni ne Jagoran Course for High Workload Architect course a OTUS kuma ina koyar da darussan gine-gine na software.
Baya ga koyarwa, kamar yadda wataƙila kun lura, Ina rubuta kayan asali na OTUS blog akan Habré kuma ina so in yi daidai da labarin yau don dacewa da ƙaddamar da kwas.
Gabatarwar
В
Insulation
Warewa yana magance matsalar samun bayanai a cikin yanayin gasa, da gaske yana ba da kariya daga yanayin tsere. Da kyau, keɓewa yana nufin serialization, wanda shine dukiya da ke tabbatar da cewa sakamakon aiwatar da ma'amaloli a layi daya daidai yake da idan an aiwatar da su a jere. Babban matsala tare da wannan dukiya shine yana da matukar wuya a samar da fasaha kuma, a sakamakon haka, yana da tasiri mai mahimmanci akan aikin tsarin. Abin da ya sa keɓance sau da yawa yana raunana, yarda da haɗarin wasu abubuwan rashin ƙarfi, waɗanda za a tattauna a ƙasa. Yiwuwar wasu abubuwan da ba su dace ba suna faruwa daidai daidai matakin keɓewar ciniki.
Sanannun abubuwan da ba a sani ba sune: karatun datti, karantawa maras maimaitawa, karatun fatalwa, amma a zahiri akwai ƙarin 5: rubutu mai datti, siginan kwamfuta da aka rasa, sabunta sabuntawa, karanta skew, rubuta skew.
Rubutun datti
Ma'anar rashin daidaituwa shine cewa ma'amaloli na iya sake rubuta bayanan da ba a gama ba.
Wannan anomaly yana da haɗari ba kawai saboda bayanai na iya yin rikici bayan yin ma'amaloli biyu (kamar yadda yake a cikin hoton), amma kuma saboda an keta atomity: tun da mun ƙyale a sake rubuta bayanan da ba a gama ba, ba a bayyana yadda za a mayar da wata ma'amala ba tare da cutar da wani ba. .
Za'a iya magance matsalar a sauƙaƙe: mun haɗa kulle zuwa rikodin kafin fara rikodin, hana wasu ma'amaloli canza rikodin har sai an cire kulle.
Datti karatu
Datti karatu yana nufin karanta bayanan da ba a gama ba.
Matsaloli suna tasowa lokacin da ake buƙatar yin ayyuka ko yanke shawara dangane da samfurin.
Don gyara kuskuren, zaku iya haɗa makullin karantawa, amma wannan zai tasiri aiki sosai. Ya fi sauƙi a faɗi cewa don komawar ma'amala, yanayin farkon bayanan (kafin fara rikodi) dole ne a adana a cikin tsarin. Me yasa ba karatu daga can? Ba shi da tsada sosai cewa yawancin ma'ajin bayanai suna cire ƙazantaccen karatu ta tsohuwa.
An rasa sabuntawa
Ɗaukakawar da aka rasa tana nufin ɗaukakawar da aka ɓace, kuma fassarar tana nuna ainihin ainihin matsalar:
A gaskiya ma, sakamakon ma'amalar T2 ya koma baya. Ana iya gyara wannan yanayin ta hanyar kulle-kulle na bayyane ko a fakaice. Wato, ko dai kawai mu sabunta rikodin, sa'an nan kuma wani kulle kulle ya faru, ko kuma mu yi zaɓi don sabuntawa, yana haifar da kullewa da karantawa. Lura cewa irin wannan aiki yana da haɗari sosai: tare da karatun mu na "marasa laifi", muna toshe sauran karatun. Wasu rumbun adana bayanai suna ba da ƙarin tsaro zaɓi don rabawa, ba da damar karanta bayanai amma ba a gyara ba.
An rasa sabuntawa
Don ingantaccen iko, sansanonin na iya ba da wasu kayan aikin, kamar siginan kwamfuta. Siginan kwamfuta wani tsari ne wanda ya ƙunshi saitin layuka kuma yana ba ka damar maimaita su. ayyana cursor_name don select_statement. Ana bayyana abubuwan da ke cikin siginan kwamfuta ta zaɓi.
Me yasa kuke buƙatar siginan kwamfuta? Gaskiyar ita ce, wasu ma'ajin bayanai suna ba da kulle akan duk bayanan da aka zaɓa ta zaɓi (karanta kwanciyar hankali), ko kuma akan rikodin da siginan kwamfuta yake a halin yanzu (kwanciyar siginar siginar). Tare da kwanciyar hankali na siginan kwamfuta, an aiwatar da gajeren kulle, wanda ke ba mu damar rage adadin makullin idan muka sake maimaita babban samfurin bayanai. Don haka, an keɓanta da ɓarnar sabuntawar da aka rasa don siginan kwamfuta.
Karatun da ba a maimaita ba
Karatun da ba a maimaita ba shi ne cewa yayin aiwatar da cinikinmu, karatun 2 a jere na rikodin guda ɗaya zai haifar da sakamako daban-daban, saboda wata ciniki ta shiga tsakanin waɗannan karatun biyu, ta canza bayananmu kuma an yi ta.
Me yasa wannan ma matsala ce? Ka yi tunanin cewa makasudin ma'amala T2 a cikin hoton shine don zaɓar duk kayan da farashinsu bai kai dalar Amurka 150 ba. Wani ya sabunta farashin zuwa $200. Don haka, tacewa da aka shigar bai yi aiki ba.
Waɗannan abubuwan rashin daidaituwa suna daina faruwa lokacin da aka ƙara maɓalli biyu ko lokacin da ake amfani da injin MVCC, wanda zan so in tattauna daban.
Karatun fatalwa
Phantom shine karanta bayanan da aka ƙara ta hanyar wani ciniki.
A matsayin misali, zamu iya lura da kuskuren zaɓi na samfur mafi arha lokacin da wannan matsalar ta faru.
Cire karatun fatalwa ya riga ya yi wahala sosai. Toshewa na yau da kullun bai isa ba, saboda ba za mu iya toshe wani abu da bai wanzu ba tukuna. Tsarukan 2PL suna amfani da kulle tsinkaya, yayin da tsarin MVCC ke da tsarin ma'amala wanda ke jujjuya ma'amaloli waɗanda abin sakawa zai iya rushewa. Duka hanyoyin farko da na biyu suna da nauyi sosai.
Karanta skew
Karanta skew yana faruwa lokacin da muke aiki tare da tebur da yawa, abin da ke ciki dole ne ya canza akai-akai.
Bari mu ce muna da allunan da ke wakiltar posts da bayanan metansu:
Ɗayan ciniki yana karantawa daga tebur, ɗayan yana gyara su:
Sakamakon ciniki T1, gidan yana da take = Good, kuma sabunta_by = T2, wanda shine wani nau'in rashin daidaituwa.
A haƙiƙa, wannan karatu ne wanda ba za a iya maimaita shi ba, amma a matsayin ɓangare na tebur da yawa.
Don gyara wannan, T1 na iya sanya makullai akan duk layuka da zai karanta, wanda zai hana T2 ciniki daga canza bayanin. Idan akwai MVCC, za a soke ma'amalar T2. Kariya daga wannan matsala na iya zama mahimmanci idan muka yi amfani da lambobi.
Rubuta skew
Wannan anomaly kuma ya fi sauƙi don bayyana tare da misali: ɗauka cewa a cikin tsarinmu aƙalla likita ɗaya ya kamata ya kasance a kan aiki, amma duka likitocin sun yanke shawarar soke aikinsu:
Rashin lafiyar yana nufin cewa babu ɗaya daga cikin likitocin da zai yi aiki. Me yasa hakan ya faru? Domin cinikin yana duba yanayin da wata ma'amala za ta iya keta shi, kuma saboda keɓewa ba mu ga wannan canjin ba.
Wannan shine karatun da ba a maimaita ba. A madadin, zaɓaɓɓu na iya sanya makullai akan waɗannan bayanan.
Rubuta skew da karanta skew hade ne na abubuwan da suka gabata. Kuna iya la'akari da rubuta skew, wanda shine ainihin karatun fatalwa. Yi la'akari da tebur wanda ya ƙunshi sunayen ma'aikata, albashinsu, da aikin da suke aiki a kai:
A sakamakon haka, muna samun hoto mai zuwa: kowane manajan ya yi tunanin cewa canjin su ba zai haifar da wuce gona da iri ba, don haka sun yi canje-canjen ma'aikata wanda tare ya haifar da wuce gona da iri.
Dalilin matsalar daidai yake da karatun fatalwa.
binciken
Kwantar da matakin keɓewar ma'amala a cikin ma'ajin bayanai shine ciniki tsakanin tsaro da aiki; zaɓen wannan matakin yakamata a tunkare shi bisa la'akari da yuwuwar haɗarin kasuwancin idan wasu abubuwan da ba su dace ba sun faru.
source: www.habr.com