Carson a bhiodh feum agad air mac-samhail leth-shioncronach?

Hi uile. Tha Vladislav Rodin ann an conaltradh. Tha mi an-dràsta a’ teagasg chùrsaichean air Ailtireachd Bathar-bog agus Ailtireachd Bathar-bog Àrd-cuideam aig OTUS. Le dùil gun tòisich sruth cùrsa ùr "ailtire àrd luchdan" Cho-dhùin mi pìos goirid de stuth tùsail a sgrìobhadh a tha mi airson a roinn leat.

Carson a bhiodh feum agad air mac-samhail leth-shioncronach?

Ro-ràdh

Leis nach urrainn don HDD ach timcheall air 400-700 gnìomhachd gach diog (a tha gun choimeas ri rps àbhaisteach air siostam luchdan àrd), is e an stòr-dàta diosc clasaigeach cnap-starra na h-ailtireachd. Mar sin, feumar aire shònraichte a thoirt do phàtranan sgèile an stòraidh seo.

An-dràsta, tha 2 phàtran sgèileachaidh stòr-dàta ann: ath-riochdachadh agus sharding. Leigidh roinneadh leat sgèile a dhèanamh air an obair sgrìobhaidh, agus, mar thoradh air sin, lughdaich na rps gach sgrìobhadh gach frithealaiche sa bhuidheann agad. Leigidh ath-riochdachadh leat an aon rud a dhèanamh, ach le gnìomhachd leughaidh. Is e am pàtran seo a tha an artaigil seo air a thoirt seachad.

Mac-samhlachadh

Ma choimheadas tu air ath-riochdachadh aig ìre gu math àrd, is e rud sìmplidh a th’ ann: bha aon fhrithealaiche agad, bha dàta air, agus an uairsin cha b’ urrainn don fhrithealaiche seo dèiligeadh ris an luchd a bh’ ann a bhith a’ leughadh an dàta seo tuilleadh. Bidh tu a’ cur dhà a bharrachd frithealaichean ris, a’ sioncronadh dàta thar gach frithealaiche, agus faodaidh an neach-cleachdaidh leughadh bho fhrithealaiche sam bith sa bhuidheann agad.

A dh'aindeoin cho sìmplidh 'sa tha e, tha grunn roghainnean ann airson a bhith a' seòrsachadh diofar ghnìomhan den sgeama seo:

  • Le dreuchdan sa bhuidheann (maighstir-mhaighstir no maighstir-tràill)
  • Le nithean air an cur (stèidhichte air sreath, stèidhichte air aithris no measgaichte)
  • A rèir an uidheamachd sioncronaidh nód

An-diugh bidh sinn a’ dèiligeadh ri puing 3.

Ciamar a tha gealltanas malairt a 'tachairt?

Chan eil an cuspair seo ceangailte gu dìreach ri ath-riochdachadh; faodar artaigil air leth a sgrìobhadh air, ach leis gu bheil tuilleadh leughaidh gun fheum gun a bhith a’ tuigsinn uidheamachd gealltanas malairt, leig dhomh na rudan as bunaitiche a chuir nad chuimhne. Bidh gealltanas malairt a’ tachairt ann an 3 ìrean:

  1. Log a-steach malairt gu log an stòr-dàta.
  2. Cleachdadh malairt ann an einnsean stòr-dàta.
  3. A’ tilleadh dearbhadh don neach-dèiligidh gun deach an gnothach a chuir an sàs gu soirbheachail.

Ann an diofar stòran-dàta, is dòcha gu bheil nuances aig an algairim seo: mar eisimpleir, ann an einnsean InnoDB an stòr-dàta MySQL tha 2 log: aon airson ath-riochdachadh (log binary), agus am fear eile airson cumail suas ACID (log neo-dhèan / ath-dhèanamh), fhad ‘s a tha e ann am PostgreSQL tha aon log ann a choileanas an dà ghnìomh (sgrìobh log air thoiseach = WAL). Ach is e dìreach na tha air a thaisbeanadh gu h-àrd am bun-bheachd coitcheann, a leigeas le leithid de nuances gun a bhith air an toirt fa-near.

Mac-samhail sioncronaich (sync).

Nach cuir sinn loidsig ris gus na h-atharrachaidhean a fhuaireadh air an algairim gealltanas malairt ath-riochdachadh:

  1. Log a-steach malairt gu log an stòr-dàta.
  2. Cleachdadh malairt ann an einnsean stòr-dàta.
  3. A’ cur dàta gu gach mac-samhail.
  4. A’ faighinn dearbhadh bho gach mac-samhail gun deach gnothach a chrìochnachadh orra.
  5. A’ tilleadh dearbhadh don neach-dèiligidh gun deach an gnothach a chuir an sàs gu soirbheachail.

Leis an dòigh-obrach seo gheibh sinn grunn eas-bhuannachdan:

  • tha an neach-dèiligidh a’ feitheamh ris na h-atharrachaidhean a chuir an sàs anns a h-uile mac-samhail.
  • mar a bhios an àireamh de nodan anns a’ chnuas a’ dol am meud, tha sinn a’ lùghdachadh an coltas gum bi an obair sgrìobhaidh soirbheachail.

Ma tha a h-uile dad nas soilleire no nas lugha leis a’ 1d puing, is fhiach na h-adhbharan airson an dàrna puing a mhìneachadh. Mura faigh sinn freagairt bho co-dhiù aon nód, nuair a bhios sinn ag ath-riochdachadh sioncronaich, bidh sinn a’ tilleadh a’ ghnothaich. Mar sin, le bhith a’ meudachadh na h-àireimh de nodan anns a’ bhuidheann, bidh thu a’ meudachadh an coltas gum fàillig gnìomhachd sgrìobhaidh.

Am faod sinn feitheamh airson dearbhadh bho dìreach ceudad sònraichte de nodan, mar eisimpleir, bho 51% (cuòram)? Faodaidh, is urrainn dhuinn, ach anns an dreach clasaigeach, tha feum air dearbhadh bho gach nod, oir is ann mar seo as urrainn dhuinn dèanamh cinnteach à cunbhalachd dàta iomlan anns a’ bhuidheann, rud a tha na bhuannachd gun teagamh den t-seòrsa ath-riochdachadh seo.

Mac-samhail asyncronach (async).

Nach atharraich sinn an algairim roimhe. Cuiridh sinn dàta gu na mac-samhail “uaireigin nas fhaide air adhart”, agus “uaireigin às deidh sin” thèid na h-atharrachaidhean a chuir an sàs anns na mac-samhail:

  1. Log a-steach malairt gu log an stòr-dàta.
  2. Cleachdadh malairt ann an einnsean stòr-dàta.
  3. A’ tilleadh dearbhadh don neach-dèiligidh gun deach an gnothach a chuir an sàs gu soirbheachail.
  4. A’ cur dàta gu mac-samhail agus a’ cur atharrachaidhean an sàs annta.

Tha an dòigh-obrach seo a’ leantainn gu bheil am brabhsair ag obair gu sgiobalta, leis nach bi sinn a’ cumail an neach-dèiligidh a’ feitheamh ris an dàta gus na mac-samhail a ruighinn agus eadhon a bhith dealasach.

Ach faodaidh suidheachadh dumpadh dàta air mac-samhail “uaireigin às deidh sin” leantainn gu call malairt, agus call malairt air a dhearbhadh leis an neach-cleachdaidh, oir mura biodh ùine aig an dàta ath-riochdachadh, dearbhadh don neach-dèiligidh. mu shoirbheachas na h-obrach a chaidh a chuir a-mach, agus an nód far an do ràinig na h-atharrachaidhean tuiteam HDD, bidh sinn a’ call a ’ghnothaich, a dh’ fhaodadh builean gu math mì-thlachdmhor a leantainn.

Ath-riochdachadh semisync

Mu dheireadh bidh sinn a 'faighinn gu ath-riochdachadh leth-shioncronach. Chan eil an seòrsa mac-samhail seo glè aithnichte no glè chumanta, ach tha e gu math inntinneach oir is urrainn dha na buannachdan a tha an lùib ath-riochdachadh sioncronaich agus asyncronach a chur còmhla.

Feuchaidh sinn ris an dà dhòigh-obrach roimhe seo a chur còmhla. Cha chùm sinn an neach-dèiligidh fada, ach feumaidh sinn an dàta a bhith air ath-aithris:

  1. Log a-steach malairt gu log an stòr-dàta.
  2. Cleachdadh malairt ann an einnsean stòr-dàta.
  3. A’ cur dàta gu mac-samhail.
  4. A’ faighinn dearbhadh bhon mhac-samhail gun d’ fhuaireadh na h-atharrachaidhean (thèid an cur an sàs “uaireigin às deidh sin”).
  5. A’ tilleadh dearbhadh don neach-dèiligidh gun deach an gnothach a chuir an sàs gu soirbheachail.

Thoir an aire, leis an algairim seo, nach tachair call malairt ach ma dh’ fhailicheas an dà chuid an nód a gheibh na h-atharrachaidhean agus an nód mac-samhail. Thathas den bheachd gu bheil coltachd fàiligeadh mar seo ìosal, agus thathas a’ gabhail ris na cunnartan sin.

Ach leis an dòigh-obrach seo tha cunnart ann gun tèid leughadh phantom. Smaoinichidh sinn air an t-suidheachadh a leanas: ann an ceum 4, cha d’ fhuair sinn dearbhadh bho mhac-samhail sam bith. Feumaidh sinn an gnothach seo a thoirt air ais agus gun dearbhadh a thilleadh chun neach-dèiligidh. Bho chaidh an dàta a chuir an sàs ann an ceum 2, tha beàrn ùine eadar deireadh ceum 2 agus gluasad air ais a ’ghnothaich, nuair a chì gnothaichean co-shìnte atharrachaidhean nach bu chòir a bhith san stòr-dàta.

Ath-riochdachadh semisync gun chall

Ma smaoinicheas tu beagan, faodaidh tu dìreach ceumannan an algairim a thionndadh air ais agus an duilgheadas a thaobh leughaidhean phantom a chàradh san t-suidheachadh seo:

  1. Log a-steach malairt gu log an stòr-dàta.
  2. A’ cur mac-samhail dàta.
  3. A’ faighinn dearbhadh bhon mhac-samhail gun d’ fhuaireadh na h-atharrachaidhean (thèid an cur an sàs “uaireigin às deidh sin”).
  4. Cleachdadh malairt ann an einnsean stòr-dàta.
  5. A’ tilleadh dearbhadh don neach-dèiligidh gun deach an gnothach a chuir an sàs gu soirbheachail.

A-nis cha dèan sinn atharrachaidhean ach ma tha iad air an ath-aithris.

co-dhùnadh

Mar as àbhaist, chan eil fuasglaidhean freagarrach ann; tha seata de fhuasglaidhean ann, agus tha na buannachdan agus na h-eas-bhuannachdan aca fhèin aig gach fear dhiubh agus tha e freagarrach airson fuasgladh fhaighinn air diofar chlasaichean de dhuilgheadasan. Tha seo gu tur fìor airson dòigh a thaghadh airson dàta a shioncronachadh ann an stòr-dàta ath-ghinte. Tha an seata de bhuannachdan a tha aig ath-riochdachadh leth-shioncronach làidir agus inntinneach gu leòr gum faodar a mheas airidh air aire, a dh’ aindeoin cho tric ‘s a tha e.

Sin e. Chì mi aig cùrsa!

Source: www.habr.com

Cuir beachd ann