Ke hobane'ng ha u ka hloka replication ea semi-synchronous?

Lumelang bohle. Vladislav Rodin o buisana le eena. Hajoale ke ruta lithuto tsa Architecture ea Software le High-Stress Software Architecture ho OTUS. Ka tebello ea ho qala mokhoa o mocha oa thupelo "Moetsi oa Meroalo e Phahameng" Ke entse qeto ea ho ngola sengoathoana se sekhutšoane sa thepa ea pele eo ke batlang ho e arolelana le uena.

Ke hobane'ng ha u ka hloka replication ea semi-synchronous?

Selelekela

Ka lebaka la hore HDD e ka etsa feela ts'ebetso e ka bang 400-700 motsotsoana (e leng ntho e ke keng ea bapisoa le li-rps tse tloaelehileng bakeng sa tsamaiso ea boima bo phahameng), database ea khale ea disk ke bothata ba mohaho. Ka hona, hoa hlokahala ho ela hloko ka ho khetheha mekhoa ea ho phahamisa ea polokelo ena.

Hona joale, ho na le mekhoa e 2 ea ho eketsa database: ho pheta-pheta le ho sharding. Sharding e u lumella ho lekanya ts'ebetso ea ho ngola, 'me, ka lebaka leo, fokotsa li-rps ka ho ngola ka seva ka har'a sehlopha sa hau. Ho pheta-pheta ho u lumella ho etsa ntho e ts'oanang, empa ka ts'ebetso ea ho bala. Ke mohlala ona oo sengoloa sena se inehetseng ho ona.

Replication

Haeba u sheba ho pheta-pheta ka tekanyo e phahameng haholo, ke ntho e bonolo: u ne u e-na le seva se le seng, ho ne ho e-na le data ho eona, 'me joale seva sena se ne se ke ke sa hlola se sebetsana ka katleho le mojaro oa ho bala data ena. U eketsa li-server tse 'maloa, u hokahanya data ho li-server tsohle,' me mosebelisi a ka bala ho tsoa ho seva efe kapa efe sehlopheng sa hau.

Leha e le bonolo, ho na le likhetho tse 'maloa tsa ho arola lits'ebetso tse fapaneng tsa morero ona:

  • Ka likarolo tsa sehlopha (master-master kapa master-lekhoba)
  • Ka lintho tse rometsoeng (ho ipapisitse le mela, ho latela polelo kapa ho tsoakoa)
  • Ho ea ka mochine oa ho hokahanya ha node

Kajeno re tla sebetsana le ntlha ea 3.

Boitlamo ba transaction bo etsahala joang?

Sehlooho sena ha se amane ka kotloloho le ho pheta-pheta; sengoloa se arohaneng se ka ngoloa ho eona, empa kaha ho bala ho eketsehileng ha ho na thuso ntle le ho utloisisa mokhoa oa ho etsa transaction, e re ke u hopotse lintho tsa mantlha. Ts'ebetso ea transaction e etsahala ka mekhahlelo e 3:

  1. Ho kenya transaction ho log database.
  2. Ho sebelisa transaction ho enjene ea database.
  3. Ho khutlisetsa netefatso ho moreki hore khoebo e sebelitsoe ka katleho.

Litabeng tse fapaneng, algorithm ena e kanna ea ba le lintlha tse fapaneng: mohlala, ka har'a enjene ea InnoDB ea database ea MySQL ho na le lintlha tse 2: e 'ngoe bakeng sa ho pheta-pheta (log ea binary), le e' ngoe bakeng sa ho boloka ACID (fetola / redo log), ha u ntse u le PostgreSQL. ho na le logi e le 'ngoe e etsang mesebetsi ka bobeli (ngola logong pele = WAL). Empa se hlahisitsoeng ka holimo ke hantle mohopolo o akaretsang, o lumellang hore li-nuances tse joalo li se ke tsa nkoa.

Katiso e lumellanang (sync).

Ha re kenyelle maikutlo ho pheta-pheta liphetoho tse fumanoeng ho algorithm ea boitlamo ba transaction:

  1. Ho kenya transaction ho log database.
  2. Ho sebelisa transaction ho enjene ea database.
  3. Ho romella lintlha ho likopi tsohle.
  4. Ho fumana netefatso ho tsoa ho likopi tsohle tsa hore transaction e phethiloe ho tsona.
  5. Ho khutlisetsa netefatso ho moreki hore khoebo e sebelitsoe ka katleho.

Ka mokhoa ona re fumana mathata a 'maloa:

  • moreki o emetse hore liphetoho li sebelisoe ho likopi tsohle.
  • ha palo ea li-node sehlopheng e ntse e eketseha, re fokotsa monyetla oa hore mosebetsi oa ho ngola o atlehe.

Haeba ntho e 'ngoe le e' ngoe e hlakile haholoanyane ka ntlha ea 1, joale mabaka a ntlha ea 2 a lokela ho hlalosoa. Haeba nakong ea ho pheta-pheta ka mokhoa o ts'oanang re sa fumane karabo ho tsoa bonyane node e le 'ngoe, re khutlisetsa transaction. Kahoo, ka ho eketsa palo ea li-node sehlopheng, o eketsa monyetla oa hore ts'ebetso ea ho ngola e hlolehe.

Na re ka emela tiisetso ho tsoa ho karolo e itseng feela ea li-node, mohlala, ho tloha ho 51% (khoramo)? Ho joalo, re ka khona, empa ka mofuta oa khale, ho hlokahala netefatso e tsoang ho li-node tsohle, hobane ke kamoo re ka netefatsang ts'ebetso e felletseng ea data sehlopheng, e leng monyetla o sa tsitsang oa mofuta ona oa ho pheta-pheta.

Phetolelo ea Asynchronous (async).

Ha re fetole algorithm e fetileng. Re tla romella lintlha ho likopi tsa "nako hamorao", 'me "nako hamorao" liphetoho li tla sebelisoa ho likopi:

  1. Ho kenya transaction ho log database.
  2. Ho sebelisa transaction ho enjene ea database.
  3. Ho khutlisetsa netefatso ho moreki hore khoebo e sebelitsoe ka katleho.
  4. Ho romella lintlha ho likopi le ho sebelisa liphetoho ho tsona.

Mokhoa ona o lebisa tabeng ea hore sehlopha se sebetsa ka potlako, hobane ha re boloke mofani a emetse hore data e fihle ho li-replicas esita le ho ikemisetsa.

Empa boemo ba ho lahlela data ho li-replicas "ka nako e 'ngoe hamorao" bo ka lebisa tahlehelong ea thekiso, le tahlehelong ea thekiso e netefalitsoeng ke mosebelisi, hobane haeba data e ne e sena nako ea ho phetoa, netefatso ho moreki. ka katleho ea ts'ebetso e ile ea romeloa, 'me node eo liphetoho li fihlileng ho eona e ile ea senya HDD, re lahleheloa ke ts'ebetso, e leng se ka lebisang liphellong tse sa thabiseng haholo.

Semisync replication

Qetellong re fihla ho semi-synchronous replication. Mofuta ona oa phetisetso ha o tsejoe hantle kapa o atile haholo, empa o na le thahasello e kholo hobane o ka kopanya melemo ea phetiso e lumellanang le e sa tsitsang.

Ha re leke ho kopanya mekhoa e 2 e fetileng. Re ke ke ra boloka moreki nako e telele, empa re tla hloka hore data e phethoe:

  1. Ho kenya transaction ho log database.
  2. Ho sebelisa transaction ho enjene ea database.
  3. Ho romella lintlha ho likopi.
  4. Ho fumana netefatso ho tsoa ho replica hore liphetoho li amohetsoe (li tla sebelisoa "nako e 'ngoe hamorao").
  5. Ho khutlisetsa netefatso ho moreki hore khoebo e sebelitsoe ka katleho.

Ka kopo hlokomela hore ka algorithm ena, tahlehelo ea transaction e etsahala ha feela node e amohelang liphetoho le replica node e hloleha. Monyetla oa ho hloleha ho joalo o nkoa o le tlase, 'me likotsi tsena lia amoheloa.

Empa ka mokhoa ona ho na le kotsi e ka bang teng ea ho bala ha phantom. Ha re nahane ka boemo bo latelang: mohatong oa 4, ha rea ​​ka ra fumana netefatso ho tsoa ho papiso efe kapa efe. Re tlameha ho khutlisa khoebo ena mme re se ke ra khutlisetsa netefatso ho moreki. Kaha data e ne e sebelisoa mohato oa 2, ho na le lekhalo la nako pakeng tsa bofelo ba mohato oa 2 le ho khutlisetsoa morao ha transaction, nakong eo litšebelisano tse tšoanang li ka bonang liphetoho tse sa lokelang ho ba polokelong ea litaba.

Phetolelo e fokolang ea semisync

Haeba u nahana hanyenyane, u ka fetola mehato ea algorithm 'me u lokise bothata ba ho bala ha phantom sebakeng sena:

  1. Ho kenya transaction ho log database.
  2. E romella data ea replica.
  3. Ho fumana netefatso ho tsoa ho replica hore liphetoho li amohetsoe (li tla sebelisoa "nako e 'ngoe hamorao").
  4. Ho sebelisa transaction ho enjene ea database.
  5. Ho khutlisetsa netefatso ho moreki hore khoebo e sebelitsoe ka katleho.

Hona joale re etsa liphetoho ha feela li se li phethiloe.

fihlela qeto e

Joalo ka mehla, ha ho na litharollo tse nepahetseng; ho na le litharollo tse ngata, tseo e 'ngoe le e' ngoe e nang le melemo le mathata a eona, 'me e loketse ho rarolla mathata a fapaneng. Sena ke 'nete ka ho feletseng bakeng sa ho khetha mochine oa ho hokahanya data sebakeng sa polokelo ea boitsebiso. Sehlopha sa melemo eo replication ea semi-synchronous e nang le eona e tiile ka ho lekaneng ebile e thahasellisa hoo e ka nkoang e tšoanela ho eloa hloko, leha e na le sekhahla se tlase.

Ke phetho. Ke tla u bona ho ehlile!

Source: www.habr.com

Eketsa ka tlhaloso