{"id":73446,"date":"2020-03-09T20:41:59","date_gmt":"2020-03-09T17:41:59","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya"},"modified":"2020-03-09T20:41:59","modified_gmt":"2020-03-09T17:41:59","slug":"pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya","title":{"rendered":"De ce ar putea fi necesar\u0103 replicarea semi-sincron\u0103?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Salut tuturor. Sunt Vladislav Rodin. \u00cen prezent, predau cursuri pe portalul OTUS, dedicate arhitecturii software \u0219i arhitecturii software-ului supus unor \u00eenc\u0103rc\u0103ri mari. <b>\u00cenainte de \u00eenceperea unui nou curs <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jvDY\/\">\u201eArhitect pentru sarcini \u00eenalte\u201d<\/a><\/noindex> am decis s\u0103 scriu un material scurt de autor pe care doresc s\u0103-l \u00eemp\u0103rt\u0103\u0219esc cu voi.<\/b><\/i><\/p>\n<p><img decoding=\"async\" alt=\"De ce ar putea fi necesar\u0103 replicarea semi-sincron\u0103?\" src=\"\/wp-content\/uploads\/2020\/03\/c2a1ea514249f8fca1ab9f668a899981.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Introducere<\/h2>\n<p>\nDin cauza faptului c\u0103 pe HDD pot fi efectuate doar aproximativ 400-700 de opera\u021biuni pe secund\u0103 (ceea ce este incomparabil cu tipicile rps&#8217;uri care apar \u00een sistemele cu \u00eenc\u0103rcare ridicat\u0103), o baz\u0103 de date clasic\u0103 pe disc reprezint\u0103 un punct slab al arhitecturii. Prin urmare, este necesar s\u0103 acord\u0103m o aten\u021bie deosebit\u0103 patronilor de scalare ai acestui stoc.<\/p>\n<p>\u00cen prezent, exist\u0103 dou\u0103 modele de scalare a bazei de date: replicarea \u0219i shardarea. Shardarea permite scalarea opera\u021biunii de scriere \u0219i, prin urmare, reduce rps-urile de scriere pentru un server din clusters-ul vostru. Replicarea permite s\u0103 se fac\u0103 acela\u0219i lucru, dar cu opera\u021biile de citire. Aceast\u0103 articole se concentreaz\u0103 asupra acestui model.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Replicare<\/h2>\n<p>\nDac\u0103 ne uit\u0103m la replicare dintr-o perspectiv\u0103 de \u00eenalt nivel, este un lucru simplu: ave\u021bi un server, pe care erau stocate datele, iar apoi acest server nu mai face fa\u021b\u0103 \u00eenc\u0103rc\u0103turii de citire a acestor date. Ad\u0103uga\u021bi \u00eenc\u0103 c\u00e2teva servere, sincroniza\u021bi datele pe toate serverele, iar utilizatorul poate citi de pe orice server din cluster-ul vostru. <\/p>\n<p>\u00cen ciuda simplific\u0103rii aparente, exist\u0103 mai multe variante de clasificare a diferitelor implement\u0103ri ale acestei scheme:<\/p>\n<ul>\n<li>Dup\u0103 rolurile \u00een cluster (master-master sau master-slave)<\/li>\n<li>Dup\u0103 obiectele transmise (bazate pe r\u00e2nduri, bazate pe instruc\u021biuni sau mixte)<\/li>\n<li>Dup\u0103 mecanismul de sincronizare a nodurilor<\/li>\n<\/ul>\n<p>\nAst\u0103zi ne vom concentra exact pe cel de-al 3-lea punct. <\/p>\n<h2>Cum se desf\u0103\u0219oar\u0103 comiterea unei tranzac\u021bii<\/h2>\n<p>\nAceast\u0103 tem\u0103 nu este direct legat\u0103 de replicare, ar putea fi scris un articol separat pe aceast\u0103 tem\u0103, totu\u0219i, deoarece f\u0103r\u0103 o \u00een\u021belegere a mecanismului de comitere a tranzac\u021biei, lectura ulterioar\u0103 devine inutil\u0103, \u00eemi permit s\u0103 amintesc cele mai esen\u021biale aspecte. Comiterea tranzac\u021biei se desf\u0103\u0219oar\u0103 \u00een 3 etape:<\/p>\n<ol>\n<li>\u00cenregistrarea tranzac\u021biei \u00een jurnalul bazei de date.<\/li>\n<li>Aplicarea tranzac\u021biei \u00een motorul bazei de date.<\/li>\n<li>Returnarea unei confirm\u0103ri clientului cu privire la aplicarea cu succes a tranzac\u021biei.<\/li>\n<\/ol>\n<p>\n\u00cen diverse baze de date, acest algoritm poate prezenta nuan\u021be: de exemplu, \u00een motorul InnoDB al bazei MySQL exist\u0103 2 jurnale: unul pentru replicare (binary log) \u0219i altul pentru men\u021binerea ACID (undo\/red log), \u00een timp ce \u00een PostgreSQL exist\u0103 un singur jurnal care \u00eendepline\u0219te ambele func\u021bii (write ahead log = WAL). Dar ceea ce este prezentat mai sus este conceptul general, care permite neglijarea acestor nuan\u021be.<\/p>\n<h2>Replicare sincron\u0103 (sync)<\/h2>\n<p>\nS\u0103 ad\u0103ug\u0103m \u00een algoritmul de comitere a tranzac\u021biei logica de replicare a modific\u0103rilor primite:<\/p>\n<ol>\n<li>\u00cenregistrarea tranzac\u021biei \u00een jurnalul bazei de date.<\/li>\n<li>Aplicarea tranzac\u021biei \u00een motorul bazei de date.<\/li>\n<li><b>Trimiterea datelor c\u0103tre toate replicile.<\/b><\/li>\n<li><b>Primirea confirm\u0103rii de la toate replicile despre executarea tranzac\u021biei asupra acestora.<\/b><\/li>\n<li>Returnarea unei confirm\u0103ri clientului cu privire la aplicarea cu succes a tranzac\u021biei.<\/li>\n<\/ol>\n<p>\nPrin aceast\u0103 abordare, ob\u021binem o serie de dezavantaje: <\/p>\n<ul>\n<li>clientul a\u0219teapt\u0103 aplicarea modific\u0103rilor pe toate replicile.<\/li>\n<li>odat\u0103 cu cre\u0219terea num\u0103rului de noduri din cluster, sc\u0103dem probabilitatea ca opera\u021bia de scriere s\u0103 aib\u0103 succes.<\/li>\n<\/ul>\n<p>\nDac\u0103 la primul punct lucrurile sunt mai mult sau mai pu\u021bin clare, motivele pentru al doilea punct merit\u0103 explicate. Dac\u0103 \u00een cazul replic\u0103rii sincrone nu ob\u021binem un r\u0103spuns de la m\u0103car un nod, invers\u0103m tranzac\u021bia. Prin urmare, cresc\u00e2nd num\u0103rul de noduri din cluster, cre\u0219te\u021bi probabilitatea ca opera\u021bia de scriere s\u0103 e\u0219ueze. <\/p>\n<p>Putem a\u0219tepta confirmarea de la o anumit\u0103 parte din noduri, de exemplu, de la 51% (quorum)? Da, putem, totu\u0219i \u00een varianta clasic\u0103 este necesar\u0103 confirmarea de la toate nodurile, deoarece astfel ne asigur\u0103m o consisten\u021b\u0103 complet\u0103 a datelor \u00een cluster, care este un avantaj indiscutabil al acestui tip de replicare.<\/p>\n<h2>Replicare asincron\u0103 (async)<\/h2>\n<p>\nS\u0103 modific\u0103m algoritmul anterior. Datele c\u0103tre replici le vom trimite \u201ec\u00e2ndva mai t\u00e2rziu\u201d, \u0219i \u201ec\u00e2ndva mai t\u00e2rziu\u201d modific\u0103rile vor fi aplicate pe replici:<\/p>\n<ol>\n<li>\u00cenregistrarea tranzac\u021biei \u00een jurnalul bazei de date.<\/li>\n<li>Aplicarea tranzac\u021biei \u00een motorul bazei de date.<\/li>\n<li>Returnarea unei confirm\u0103ri clientului cu privire la aplicarea cu succes a tranzac\u021biei.<\/li>\n<li><b>Trimiterea datelor c\u0103tre replici \u0219i aplicarea modific\u0103rilor de c\u0103tre acestea.<\/b><\/li>\n<\/ol>\n<p>\nAceast\u0103 abordare duce la faptul c\u0103 clusterul func\u021bioneaz\u0103 rapid, deoarece nu \u021binem clientul \u00een a\u0219teptare p\u00e2n\u0103 c\u00e2nd datele ajung la replici \u0219i sunt \u0219i confirmate.<\/p>\n<p>Dar condi\u021bia de a trimite date c\u0103tre replici \u201ec\u00e2ndva mai t\u00e2rziu\u201d poate conduce la pierderea tranzac\u021biei, \u0219i anume pierderea unei tranzac\u021bii confirmate c\u0103tre utilizator, deoarece dac\u0103 datele nu au fost repliate la timp, confirmarea trimis\u0103 clientului despre succesul opera\u021biei, iar nodul pe care au venit modific\u0103rile a avut o defec\u021biune HDD, pierdem tranzac\u021bia, ceea ce poate duce la consecin\u021be foarte nepl\u0103cute.<\/p>\n<h2>Replicare semi-sincron\u0103 (semisync)<\/h2>\n<p>\n\u00cen sf\u00e2r\u0219it am ajuns la replicarea semi-sincron\u0103. Acest tip de replicare nu este foarte cunoscut \u0219i nu este foarte r\u0103sp\u00e2ndit, totu\u0219i reprezint\u0103 un mare interes, deoarece poate combina avantajele at\u00e2t ale replic\u0103rii sincronizate, c\u00e2t \u0219i ale celei asincronizate.<\/p>\n<p>S\u0103 \u00eencerc\u0103m s\u0103 combin\u0103m cele dou\u0103 abord\u0103ri anterioare. Nu vom \u021bine clientul mult timp, dar vom cere ca datele s\u0103 fie replicate:<\/p>\n<ol>\n<li>\u00cenregistrarea tranzac\u021biei \u00een jurnalul bazei de date.<\/li>\n<li>Aplicarea tranzac\u021biei \u00een motorul bazei de date.<\/li>\n<li><b>Trimiterea datelor c\u0103tre replici.<\/b><\/li>\n<li><b>Ob\u021binerea unei confirm\u0103ri de la replic\u0103 c\u0103 modific\u0103rile au fost primite (aplicate vor fi \u201ec\u00e2ndva mai t\u00e2rziu\u201d).<\/b><\/li>\n<li>Returnarea unei confirm\u0103ri clientului cu privire la aplicarea cu succes a tranzac\u021biei.<\/li>\n<\/ol>\n<p>\nRe\u021bine\u021bi c\u0103, \u00een cadrul acestui algoritm, pierderea unei tranzac\u021bii apare doar \u00een cazul \u00een care at\u00e2t nodul care accept\u0103 modific\u0103rile, c\u00e2t \u0219i nodul-replic\u0103 se defecteaz\u0103. Probabilitatea unei astfel de defec\u021biuni este considerat\u0103 mic\u0103, iar aceste riscuri sunt acceptate. <\/p>\n<p>Dar cu aceast\u0103 abordare exist\u0103 riscul citirilor fantom\u0103. S\u0103 ne imagin\u0103m urm\u0103torul scenariu: \u00een pasul 4 nu am primit confirm\u0103ri de la nicio replic\u0103. Trebuie s\u0103 anul\u0103m aceast\u0103 tranzac\u021bie, iar clientului nu \u00eei return\u0103m o confirmare. Deoarece datele au fost aplicate \u00een pasul 2, \u00eentre finalizarea pasului 2 \u0219i anularea tranzac\u021biei apare o fereastr\u0103 temporal\u0103, \u00een care tranzac\u021biile paralele pot vedea acele modific\u0103ri care nu ar trebui s\u0103 existe \u00een baza de date. <\/p>\n<h2>Replicare semi-sincron\u0103 f\u0103r\u0103 pierdere<\/h2>\n<p>\nDac\u0103 ne g\u00e2ndim pu\u021bin, putem schimba pur \u0219i simplu pa\u0219ii algoritmului pentru a rezolva problema citirilor fantom\u0103 \u00een acest scenariu:<\/p>\n<ol>\n<li>\u00cenregistrarea tranzac\u021biei \u00een jurnalul bazei de date.<\/li>\n<li><b>Trimiterea datelor c\u0103tre replic\u0103.<\/b><\/li>\n<li><b>Ob\u021binerea unei confirm\u0103ri de la replic\u0103 c\u0103 modific\u0103rile au fost primite (aplicate vor fi \u201ec\u00e2ndva mai t\u00e2rziu\u201d).<\/b><\/li>\n<li>Aplicarea tranzac\u021biei \u00een motorul bazei de date.<\/li>\n<li>Returnarea unei confirm\u0103ri clientului cu privire la aplicarea cu succes a tranzac\u021biei.<\/li>\n<\/ol>\n<p>\nAcum ne angaj\u0103m s\u0103 facem modific\u0103rile doar dac\u0103 au fost replicate. <\/p>\n<h2>Ie\u0219ire<\/h2>\n<p>\nCa \u00eentotdeauna, nu exist\u0103 solu\u021bii perfecte, ci un set de solu\u021bii, fiecare av\u00e2nd propriile sale avantaje \u0219i dezavantaje \u0219i fiind potrivit\u0103 pentru diferite tipuri de probleme. Acest lucru este adev\u0103rat \u0219i pentru alegerea mecanismului de sincronizare a datelor \u00een baza de date replicat\u0103. Setul de avantaje pe care \u00eel ofer\u0103 replicarea semi-sincron\u0103 este destul de solid \u0219i interesant, astfel \u00eenc\u00e2t s\u0103 merite aten\u021bia, \u00een ciuda r\u0103sp\u00e2ndirii sale reduse.<\/p>\n<p><b>Asta e tot. Ne vedem la <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jvDY\/\">curs<\/a><\/noindex>!<\/b><br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/491106\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u043b\u0435 OTUS \u043a\u0443\u0440\u0441\u044b, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e, \u043f\u043e\u0434\u0432\u0435\u0440\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435. \u0412 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043a\u0443\u0440\u0441\u0430 \u00ab\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a\u00bb \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0418\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043d\u0430 HDD \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043b\u0438\u0448\u044c \u043f\u043e\u0440\u044f\u0434\u043a\u0430 400-700 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":73447,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-73446","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u043b\u0435 OTUS \u043a\u0443\u0440\u0441\u044b, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e, \u043f\u043e\u0434\u0432\u0435\u0440\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u043e\u0447\u0435\u043c\u0443 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u0443\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u043b\u0435 OTUS \u043a\u0443\u0440\u0441\u044b, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e, \u043f\u043e\u0434\u0432\u0435\u0440\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-09T17:41:59+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-09T17:41:59+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47De ce ar putea fi necesar\u0103 replicarea semi-sincron\u0103? | ProHoster","description":"Salut tuturor. Sunt Vladislav Rodin. \u00cen prezent, predau cursuri pe portalul OTUS, dedicate arhitecturii software \u0219i arhitecturii software-ului supus unor \u00eenc\u0103rc\u0103ri mari.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u043e\u0447\u0435\u043c\u0443 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u0443\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f? | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u043b\u0435 OTUS \u043a\u0443\u0440\u0441\u044b, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e, \u043f\u043e\u0434\u0432\u0435\u0440\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435.","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-09T17:41:59+00:00","article:modified_time":"2020-03-09T17:41:59+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"73446","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:50:08","updated":"2022-09-28 11:57:57","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/73446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=73446"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/73446\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/73447"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=73446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=73446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=73446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}