Sei ungade semi-synchronous replication?

Mhoroi mose. Vladislav Rodin ari kutaura. Ini parizvino ndinodzidzisa makosi paSoftware Architecture uye Yakakwira-Stress Software Architecture kuOTUS. Mukutarisira kutanga kwegwaro idzva rekosi "High Load Architect" Ndakasarudza kunyora chidimbu chipfupi chezvinyorwa zvepakutanga zvandinoda kugoverana newe.

Sei ungade semi-synchronous replication?

Nhanganyaya

Nekuda kwekuti HDD inogona kungoita 400-700 mashandiro pasekondi (iyo isingaenzaniswi neyakajairwa rps yeyakakwira-mutoro system), iyo classic disk database ndiyo bhodhoro rezvivakwa. Naizvozvo, zvinodikanwa kubhadhara zvakanyanya kune scaling mapatani ekuchengetedza uku.

Parizvino, kune maviri dhatabhesi kuyera mapatani: kudzokorora uye sharding. Sharding inobvumidza iwe kuyera basa rekunyora, uye, semhedzisiro, kuderedza iyo rps pakunyora pane server musumbu rako. Kudzokorora kunobvumira iwe kuti uite chinhu chimwe chete, asi nekuverenga mashandiro. Iyi ndiyo nzira iyo chinyorwa ichi chakatsaurirwa.

Replication

Kana iwe ukatarisa kudzokorodza padanho repamusoro, chinhu chiri nyore: wanga uine sevha imwe, pakanga paine data pairi, uyezve sevha iyi haichakwanisa kubata nemutoro wekuverenga iyi data. Iwe unowedzera mamwe mashoma maseva, wiriranisa data pane ese maseva, uye mushandisi anogona kuverenga kubva kune chero server musumbu rako.

Pasinei nekureruka kwayo, kune akati wandei sarudzo dzekuisa akasiyana maitirwo echirongwa ichi:

  • Nemabasa ari musumbu (tenzi-tenzi kana tenzi-muranda)
  • Nezvinhu zvakatumirwa (mutsara-wakavakirwa, chirevo-chakavakirwa kana chakasanganiswa)
  • Maererano node synchronization mechanism

Nhasi tichabata nepoint 3.

Chiitiko chekutengeserana chinoitika sei?

Ichi chinyorwa hachina hukama zvakananga nekudzokorora; chinyorwa chakasiyana chinogona kunyorwa pachiri, asi sezvo kuwedzera kuverenga kusingabatsiri pasina kunzwisisa maitiro ekuita, rega ndikuyeuchidze nezvezvinhu zvakakosha. Kuitwa kwekutengeserana kunoitika mumatanho matatu:

  1. Kuisa dhizaini kune dhatabhesi log.
  2. Kushandisa kutengeserana muinjini yedatabase.
  3. Kudzorera simbiso kumutengi kuti kutengeserana kwaitwa zvakabudirira.

Mumadhatabhesi akasiyana, iyi algorithm inogona kunge iine nuances: semuenzaniso, muInnoDB injini yeMySQL dhatabhesi mune 2 matanda: imwe yekudzokorora (binary log), uye imwe yekuchengetedza ACID (undo/redo log), uri muPostgreSQL. pane danda rimwe chete rinoita mabasa ese ari maviri (nyora pamberi pegi = WAL). Asi izvo zvinoratidzwa pamusoro ndizvo chaizvo pfungwa huru, iyo inobvumira nuances dzakadaro kuti dzirege kuverengerwa.

Synchronous (sync) kudzokorora

Ngatiwedzerei pfungwa kuti tidzokorore shanduko dzakagamuchirwa kune transaction commit algorithm:

  1. Kuisa dhizaini kune dhatabhesi log.
  2. Kushandisa kutengeserana muinjini yedatabase.
  3. Kutumira data kune zvese replicas.
  4. Kugamuchira simbiso kubva kune zvese replicas kuti kutengeserana kwapera pavari.
  5. Kudzorera simbiso kumutengi kuti kutengeserana kwaitwa zvakabudirira.

Neiyi nzira tinowana akati wandei akashata:

  • mutengi anomirira shanduko kuti ishandiswe kune ese makopi.
  • sezvo huwandu hwemanodhi musumbu hunowedzera, tinodzikisira mukana wekuti basa rekunyora ribudirire.

Kana zvinhu zvose zvakanyanya kana zvishoma zvakajeka ne 1st point, saka zvikonzero zve 2nd point zvakakodzera kutsanangura. Kana panguva yekudzokorodza tisingagamuchire mhinduro kubva pane imwe node, tinodzosera kumashure kutengeserana. Saka, nekuwedzera nhamba yemanodhi musumbu, iwe unowedzera mukana wekuti basa rekunyora rikundike.

Tinogona here kumirira simbiso kubva kune imwe chete muzana yemanodhi, semuenzaniso, kubva pa51% (quorum)? Hongu, tinogona, asi mune yekirasi vhezheni, simbiso kubva kune ese node inodiwa, nekuti iyi ndiyo nzira yatinogona kuvimbisa yakakwana data kuenderana musumbu, inova mukana usina mubvunzo werudzi urwu rwekudzokorora.

Asynchronous (async) kudzokorora

Ngatigadzirise iyo yapfuura algorithm. Isu tichatumira data kune replicas "imwe nguva gare gare", uye "imwe nguva gare gare" shanduko dzichaiswa kune replicas:

  1. Kuisa dhizaini kune dhatabhesi log.
  2. Kushandisa kutengeserana muinjini yedatabase.
  3. Kudzorera simbiso kumutengi kuti kutengeserana kwaitwa zvakabudirira.
  4. Kutumira data kune replicas uye kushandisa shanduko kwavari.

Iyi nzira inotungamirira kune chokwadi chokuti boka rinoshanda nokukurumidza, nokuti hatichengete mutengi akamirira kuti data isvike kune replicas uye kunyange kuzvipira.

Asi mamiriro ekurasa data pane replicas "imwe nguva gare gare" anogona kutungamirira mukurasikirwa kwekutengeserana, uye nekurasikirwa kwekutengeserana kwakasimbiswa nemushandisi, nekuti kana iyo data yakanga isina nguva yekudzokororwa, chisimbiso kune mutengi. nezvekubudirira kwekushanda kwakatumirwa, uye node iyo shanduko yakasvika yakarovera HDD, tinorasikirwa nekutengeserana, izvo zvinogona kutungamirira kumigumisiro isingafadzi.

Semisync replication

Pakupedzisira tinosvika kune semi-synchronous replication. Rudzi urwu rwekudzokorodza haruzivikanwi zvakanyanya kana kunyanyozivikanwa, asi rwuri kufarira zvakanyanya nekuti runogona kusanganisa zvakanakira zvese zviri zviviri synchronous uye asynchronous kudzokorora.

Ngatiedzei kubatanidza maitiro maviri apfuura. Hatisi kuzochengeta mutengi kwenguva yakareba, asi isu tichada kuti data ridzokororwe:

  1. Kuisa dhizaini kune dhatabhesi log.
  2. Kushandisa kutengeserana muinjini yedatabase.
  3. Kutumira data kune replicas.
  4. Kugamuchira simbiso kubva kune replica kuti shanduko dzagamuchirwa (dzichashandiswa "imwe nguva gare gare").
  5. Kudzorera simbiso kumutengi kuti kutengeserana kwaitwa zvakabudirira.

Ndokumbira utarise kuti neiyi algorithm, kurasikirwa kwekutengeserana kunoitika chete kana iyo node inogamuchira shanduko uye replica node ikatadza. Mikana yekukundikana kwakadaro inoonekwa seyakaderera, uye njodzi idzi dzinogamuchirwa.

Asi nenzira iyi pane njodzi inogona kuitika yekuverenga phantom. Ngatimbofungidzirai mamiriro anotevera: mudanho rechina, hatina kugamuchira simbiso kubva kune chero mufananidzo. Isu tinofanirwa kudzoreredza kutengeserana uku uye kwete kudzosera simbiso kumutengi. Sezvo iyo data yakashandiswa munhanho 4, pane nguva yepakati pakati pekuguma kwedanho 2 uye kudzoreredzwa kwekutengeserana, panguva iyo kutengeserana kwakafanana kunogona kuona shanduko isingafanirwe kunge iri mudhatabhesi.

Kurasika-zvishoma semisync kudzokorora

Kana iwe uchifunga zvishoma, unogona kungodzosera nhanho dzealgorithm uye kugadzirisa dambudziko rekuverenga kwephantom mune ino mamiriro:

  1. Kuisa dhizaini kune dhatabhesi log.
  2. Kutumira replica data.
  3. Kugamuchira simbiso kubva kune replica kuti shanduko dzagamuchirwa (dzichashandiswa "imwe nguva gare gare").
  4. Kushandisa kutengeserana muinjini yedatabase.
  5. Kudzorera simbiso kumutengi kuti kutengeserana kwaitwa zvakabudirira.

Iye zvino tinoita shanduko chete kana dzakadzokororwa.

mhedziso

Senguva dzose, hapana mhinduro dzakakodzera; kune seti yemhinduro, imwe neimwe ine zvayakanakira nezvayakaipira uye yakakodzera kugadzirisa makirasi akasiyana ematambudziko. Izvi ichokwadi zvachose pakusarudza michina yekuyananisa data mune yakadzokororwa dhatabhesi. Iyo seti yemabhenefiti ayo semi-synchronous kudzokorora ane yakasimba zvakakwana uye inonakidza zvekuti inogona kutorwa seyakakodzera kutariswa, kunyangwe kuderera kwayo.

Ndizvo zvose. Ndokuona pa chokwadi!

Source: www.habr.com

Voeg