Menene zai iya haifarwa daga raunana matakin keɓewar ciniki a cikin bayanan bayanai?

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. "PostgreSQL", wanda ke buɗe don yin rajista a yanzu.

Menene zai iya haifarwa daga raunana matakin keɓewar ciniki a cikin bayanan bayanai?

Gabatarwar

В lokaci na ƙarshe Mun yi magana game da gaskiyar cewa ma'amaloli a cikin bayanan bayanai suna aiki don magance matsaloli biyu: tabbatar da haƙuri da kuskure da samun damar bayanai a cikin yanayi mai gasa. Don cika waɗannan ayyuka, dole ne ma'amala ta kasance tana da kaddarorin ACID. A yau za mu yi magana dalla-dalla game da wasiƙar ni (keɓewa) a cikin wannan gajarta.

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.

Menene zai iya haifarwa daga raunana matakin keɓewar ciniki a cikin bayanan bayanai?

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.

Menene zai iya haifarwa daga raunana matakin keɓewar ciniki a cikin bayanan bayanai?

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:

Menene zai iya haifarwa daga raunana matakin keɓewar ciniki a cikin bayanan bayanai?

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.

Menene zai iya haifarwa daga raunana matakin keɓewar ciniki a cikin bayanan bayanai?

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.

Menene zai iya haifarwa daga raunana matakin keɓewar ciniki a cikin bayanan bayanai?

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:

Menene zai iya haifarwa daga raunana matakin keɓewar ciniki a cikin bayanan bayanai?

Ɗayan ciniki yana karantawa daga tebur, ɗayan yana gyara su:

Menene zai iya haifarwa daga raunana matakin keɓewar ciniki a cikin bayanan bayanai?

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:

Menene zai iya haifarwa daga raunana matakin keɓewar ciniki a cikin bayanan bayanai?

Menene zai iya haifarwa daga raunana matakin keɓewar ciniki a cikin bayanan bayanai?

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:

Menene zai iya haifarwa daga raunana matakin keɓewar ciniki a cikin bayanan bayanai?

Menene zai iya haifarwa daga raunana matakin keɓewar ciniki a cikin bayanan bayanai?

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.

Koyi game da kwas.

source: www.habr.com

Add a comment