Waa kan guuldarro aan laba jeer arkay, laba matoor oo kala duwan. Muuqaal bixid ayaa socda 10:00 oo diiwaangeliya sumadda waqtiga ugu sarreysa ee isbeddelka ugu dambeeya ee uu arkay. Hal macaamilaal oo bilaabmay 09:58 ayaa weli furan, wuxuu commit sameeyaa 10:03 oo wuxuu qaataa sumadda waqtiga markii uu bilaabmay. Muuqaal bixinta xigta waxay kaliya codsanaysaa safaf cusub oo ka cusub 10:00 mana arko waligeed. Cabbirka wareejinta aad buu u fiicnaa xogtaase qaldanayd.

Raac muuqaal bixintii lumisay hal saf

Raac nidaamka dhacdooyinka, ma aha SQL. Barnaamijku wuxuu qoraa waqtiga isbeddelka safka markii macaamilaalku bilaabmo, ma aha marka uu commit sameeyo. Muuqaal bixiyuhu wuxuu akhriyaa calaamadda biyaha saacadda derbiga inta macaamilaalku weli furan yahay. Kadib macaamilaalku wuxuu commit sameeyaa waqti isbeddel oo ka duugan calaamadda biyaha la kaydiyay. Duullimaadka xiga ee macmiilku wuxuu bilaabmaa calaamadda biyaha kadib, sidaas darteed safku wuxuu ku harayaa cursor-ka gadaashiisa oo dib looma dooran doono waligeed.

Waxba khalad ma diiwaangeliso, sababtoo ah waxba ma guuldareysan. Taasi waa waxa fasalkan khaladaadka qaali ka dhigaya: feed-ka delta wuu degdeg badan yahay, tirada safafku waxay u muuqataa mid la aamini karo, safka maqan wuxuu soo baxaa toddobaadyo kadib sida tikitka isku-dubbaridka oo aan cidina dib u soo saari karin.

Lambarada isku xigxiga waxay leeyihiin isla qaabka cilladda sabab kale. ID hal-beegan ah wuxuu kuu sheegaa nidaamka qaybinta qiimayaasha, ma aha nidaamka commit-ka macaamilaalada. Macaamilaal qaatay lambar hoose wuxuu commit samayn karaa mid qaatay lambar sarreeya kadib, sidaas darteed cursor ku salaysan nidaamka qaybintu sidoo kale wuxuu ka tagi karaa god.

Shan ballanqaad oo feed-ku waa inuu bixiyaa

Ka hor intaadan dooran gaadiid, weydii nidaamka isha qandaraas shan qodob leh. Haddii qodob kasta maqan yahay, waxaad haysataa qiyaas ma aha feed isbeddel.

  • Dabool: gelinta, cusboonaysiinta iyo tirtirista, mid kastaa wuxuu la socdaa fure deggan oo lagama maarmaan u ah dhaqangelinta.
  • Xad: macnaha qiimaha cursor-ka iyo waxa duullimaad isku duuban leeyahay.
  • Isku duubnaan: sida loo akhriyo shaxda la xidhiidha iyada oo aan la isku darin xaaladaha isha ee aan is waafaqsanayn.
  • Haynta: inta ay macmiil go'ay ku sii wadi karo booskiisa la kaydiyay.
  • Dib u bilaabid: snapshot buuxa oo la taageeray marka booskaasi aanu sharci ahayn.

Hab la taageeray ayaa buuxin kara shantaba. Dukumiintiga SQL Server ee raadraaca isbeddelada waa hal tusaale la daabacay oo cad: wuxuu qeexaa nooca ugu yar ee ansax ah, wuxuu diiwaangeliyaa tirtirista iyo isbeddelada, wuxuuna sharraxaa macaamilaal snapshot oo daboola xaqiijinta, qabashada nooca iyo weydiimaha isbeddelka la xidhiidha. Waa tusaale waxa laga doonayo isha, ma aha qaab-dhismeedka aad ku dhejisan karto matoor kale.

U qaabeey barta hubinta qayb ka mid ah pipeline-ka

Booska la kaydiyay ee macmiilku waa mishiinka xaaladda dhabta ah, sidaas darteed sidaas u qor. Cursor-ku wuxuu horay u mari karaa kaliya socodka shaqada ee horey u dhaqangeliyay duullimaadka oo commit sameeyay macaamilaalka bartilmaameedka.

cursor  = durable_checkpoint()          # last fully applied position
batch   = extract(cursor, upper_bound)  # one consistent batch
apply(batch)                            # idempotent at the target
commit()
checkpoint(batch.upper_bound)           # only now

Haddii gaarsiinta kala guuldareysato, isku-dubbarid isla duullimaadkaas halkii aad ka abuuri lahayd boos cusub oo isha. Dib u soo saarid xad sare oo cusub leh waa jidka ay dhaqangelinta qayb ahaan u noqoto god joogto ah. Qaanuunka muraayadda ayaa sidoo kale khuseeya dhinaca kale: dhaqangelinta idempotent ee bartilmaameedka waxay ka hortagtaa nuqulada waxbana ma qabato isbeddel aan soo saaristu waligeed arag.

Tirtiristu waxay u baahan tahay diiwaanno, ma aha gabagabada

Isbarbardhigga safafka weli jira ma sheegi karo macmiilka furayaasha noocee ah ay lumay. Isha aan waligeed diiwaangelin tirtirista waxay kuu reebtaa laba xulasho oo aan dhamaystirnayn: haynta taariikhda furayaasha muddo ku filan diff, ama samaynta isku-dubbarid buuxa oo cad oo jadwalka ah. Labaduba waa go'aanno naqshadeed oo kharash leh, midna ma jiro ilaa qof uu leeyahay.

Hayntuna waa isla nooca go'aanka. Feed kasta oo isbeddel la taageeray wuxuu leeyahay daaqad; ku sheeg qandaraaska oo digniin bixi marka barta hubinta macmiilku u soo dhawaato. Macmiilka soo toosa kadib hakad laba toddobaad ah waa inuu akhriyaa khalad cad "dib u bilaabid ayaa loo baahan yahay" halkii uu aamusnaan u heli lahaa duullimaad qayb ah.

Kadib cabbir haddii delta-du u qalmo

Ku noqoshada isbarbardhigga fure kasta iyo hash mararka qaarkood waa sax, waana mudan in la ogaado kharashkeeda. Weli waxaad wareejinaysaa macluumaad ku saabsan saf kasta, hash-yadu ma siiyaan snapshot isku duuban oo shaxda dhexdeeda ah, nidaamka hash-na wuxuu keenaa su'aalo u gaar ah oo ku saabsan matalaadda iyo isku dhaca. Bayt yar oo xad la xaqiijin karo ayaa yahay hadafka; bayt yar oo aamusnaan u tuura isbeddel la commit sameeyay sinaba ma aha delta.

Tiirka isbeddelka ugu dambeeya waa tilmaan. Cursor ka badbaada commit daahitaan, tirtiris iyo hakad dheer waa qandaraas.

Maqaallo la xiriira