{"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\/da\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya","title":{"rendered":"Hvorfor kan halv-synkron replikation v\u00e6re n\u00f8dvendig?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Hej alle sammen. Det er \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d, der taler. I \u00f8jeblikket underviser jeg p\u00e5 OTUS-portalen i kurser om softwarearkitektur og arkitektur til h\u00f8jbelastede systemer. <b>Forud for starten af det nye hold af kurset <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jvDY\/\">\u00abArkitekt for h\u00f8j belastning\u00bb<\/a><\/noindex> har jeg besluttet at skrive lidt originalt materiale, som jeg gerne vil dele med jer.<\/b><\/i><\/p>\n<p><img decoding=\"async\" alt=\"Hvorfor kan halv-synkron replikation v\u00e6re n\u00f8dvendig?\" src=\"\/wp-content\/uploads\/2020\/03\/c2a1ea514249f8fca1ab9f668a899981.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Introduktion<\/h2>\n<p>\nDa HDD kun kan h\u00e5ndtere omkring 400-700 operationer pr. sekund (hvilket er uforholdsm\u00e6ssigt lavt sammenlignet med de typiske rps, der anvendes i h\u00f8jbelastede systemer), udg\u00f8r en klassisk diskdatabase en flaskehals i arkitekturen. Derfor er det n\u00f8dvendigt at fokusere specifikt p\u00e5 skaleringsm\u00f8nstre for denne datalagring.<\/p>\n<p>I \u00f8jeblikket findes der to skaleringsm\u00f8nstre for databasen: replikering og sharding. Sharding g\u00f8r det muligt at skalere skriveoperationer og dermed reducere rps for skrivning til \u00e9n server i dit cluster. Replikering g\u00f8r det samme for l\u00e6seoperationer. Denne artikel vil specielt fokusere p\u00e5 dette m\u00f8nster.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Replikering<\/h2>\n<p>\nHvis man ser p\u00e5 replikering p\u00e5 et meget overfladisk niveau, er det simpelt: du havde \u00e9n server, hvor dataene l\u00e5, og s\u00e5 kunne denne server ikke l\u00e6ngere h\u00e5ndtere belastningen af at l\u00e6se disse data. Du tilf\u00f8jer et par servere, synkroniserer dataene p\u00e5 alle servere, og brugeren kan l\u00e6se fra hvilken som helst server i dit cluster. <\/p>\n<p>P\u00e5 trods af den tilsyneladende enkelhed findes der flere m\u00e5der at klassificere forskellige implementeringer af denne ordning:<\/p>\n<ul>\n<li>Efter roller i clusteret (master-master eller master-slave)<\/li>\n<li>Efter de sendte objekter (row-based, statement-based eller mixed)<\/li>\n<li>Efter mekanismen til synkronisering af noder<\/li>\n<\/ul>\n<p>\nI dag vil vi specifikt gennemg\u00e5 det tredje punkt. <\/p>\n<h2>Hvordan transaktionen kommitteres<\/h2>\n<p>\nDette emne relaterer sig ikke direkte til replikering, og der kan skrives en separat artikel om det, men da det er nyttel\u00f8st at l\u00e6se videre uden at forst\u00e5 mekanismen for kommittering af transaktionen, tillader jeg mig at minde om de mest grundl\u00e6ggende ting. Kommittering af transaktionen sker i tre trin:<\/p>\n<ol>\n<li>Skrivning af transaktionen i databasens log.<\/li>\n<li>Anvendelse af transaktionen i database-motoren.<\/li>\n<li>Tilbagelevering af bekr\u00e6ftelse til klienten om den vellykkede anvendelse af transaktionen.<\/li>\n<\/ol>\n<p>\nI forskellige databaser i denne algoritme kan der opst\u00e5 nuancer: For eksempel har InnoDB-motoren i MySQL to logfiler: en til replikering (binary log) og en anden til at opretholde ACID (undo\/redo log), mens PostgreSQL har \u00e9n logfil, der udf\u00f8rer begge funktioner (write ahead log = WAL). Men ovenfor er netop den generelle koncept, der g\u00f8r det muligt at tilsides\u00e6tte s\u00e5danne nuancer.<\/p>\n<h2>Synchron replikering (sync)<\/h2>\n<p>\nLad os tilf\u00f8je logik til replikering af de modtagne \u00e6ndringer i transaktionscommitalgoritmen:<\/p>\n<ol>\n<li>Skrivning af transaktionen i databasens log.<\/li>\n<li>Anvendelse af transaktionen i database-motoren.<\/li>\n<li><b>Afsendelse af data til alle replikaer.<\/b><\/li>\n<li><b>Modtagelse af bekr\u00e6ftelse fra alle replikaer om, at transaktionen er udf\u00f8rt p\u00e5 dem.<\/b><\/li>\n<li>Tilbagelevering af bekr\u00e6ftelse til klienten om den vellykkede anvendelse af transaktionen.<\/li>\n<\/ol>\n<p>\nMed denne tilgang f\u00e5r vi en r\u00e6kke ulemper: <\/p>\n<ul>\n<li>Klienten venter p\u00e5 at anvende \u00e6ndringer p\u00e5 alle replikaer.<\/li>\n<li>Med et stigende antal noder i klyngen mindsker vi sandsynligheden for, at skriveoperationen lykkes.<\/li>\n<\/ul>\n<p>\nHvis det f\u00f8rste punkt er relativt klart, kr\u00e6ver \u00e5rsagerne til det andet punkt en forklaring. Hvis vi ved synkron replikering ikke f\u00e5r svar fra mindst \u00e9n node, tilbagef\u00f8rer vi transaktionen. Dermed, ved at \u00f8ge antallet af noder i klyngen, \u00f8ger du sandsynligheden for, at skriveoperationen fejler. <\/p>\n<p>Kan vi vente p\u00e5 bekr\u00e6ftelse kun fra en vis andel af noderne, for eksempel 51% (kvorum)? Ja, det kan vi, men i den klassiske version kr\u00e6ves bekr\u00e6ftelse fra alle noder, da det er s\u00e5dan, vi kan sikre fuld konsistens af data i klyngen, hvilket er en uomtvistelig fordel ved denne form for replikering.<\/p>\n<h2>Asynkron replikering (async)<\/h2>\n<p>\nLad os \u00e6ndre den tidligere algoritme. Data til replikaer vil blive sendt \"en gang senere\", og \"en gang senere\" vil \u00e6ndringerne blive anvendt p\u00e5 replikaerne:<\/p>\n<ol>\n<li>Skrivning af transaktionen i databasens log.<\/li>\n<li>Anvendelse af transaktionen i database-motoren.<\/li>\n<li>Tilbagelevering af bekr\u00e6ftelse til klienten om den vellykkede anvendelse af transaktionen.<\/li>\n<li><b>Afsendelse af data til replikaer og anvendelse af \u00e6ndringer af dem.<\/b><\/li>\n<\/ol>\n<p>\nDenne tilgang f\u00f8rer til, at klyngen k\u00f8rer hurtigt, da vi ikke holder klienten ventende, mens data n\u00e5r frem til replikaerne og bliver committet.<\/p>\n<p>Men betingelsen for at sende data til replikaer \"en gang senere\" kan f\u00f8re til tab af transaktioner, specifikt tab af bekr\u00e6ftede brugertransaktioner, for hvis data ikke n\u00e5r at blive replikeret, mens bekr\u00e6ftelsen til kunden om, at operationen er gennemf\u00f8rt, er blevet sendt, og den node, der modtog \u00e6ndringerne, er g\u00e5et ned, mister vi transaktionen, hvilket kan f\u00f8re til meget ubehagelige konsekvenser.<\/p>\n<h2>Halv-synkron replikering (semisync)<\/h2>\n<p>\nEndelig har vi n\u00e5 n\u00e5et til den halv-synkrone replikation. Denne type replikation er ikke s\u00e6rlig kendt og ikke s\u00e6rlig udbredt, men den er interessant, da den kan kombinere fordelene ved b\u00e5de synkron og asynkron replikation.<\/p>\n<p>Lad os fors\u00f8ge at sammenflette de to tidligere tilgange. Vi vil ikke holde kunden for l\u00e6nge, men kr\u00e6ve, at dataene replikeres:<\/p>\n<ol>\n<li>Skrivning af transaktionen i databasens log.<\/li>\n<li>Anvendelse af transaktionen i database-motoren.<\/li>\n<li><b>Send data til replikaer.<\/b><\/li>\n<li><b>Modtag bekr\u00e6ftelse fra replikaen om modtagelse af \u00e6ndringerne (de vil blive anvendt \"p\u00e5 et senere tidspunkt\").<\/b><\/li>\n<li>Tilbagelevering af bekr\u00e6ftelse til klienten om den vellykkede anvendelse af transaktionen.<\/li>\n<\/ol>\n<p>\nBem\u00e6rk, at ved denne algoritme vil tab af transaktioner kun ske i tilf\u00e6lde af, at b\u00e5de noden, der modtager \u00e6ndringerne, og replika-noden falder. Sandsynligheden for en s\u00e5dan fejl anses for lav, og disse risici accepteres. <\/p>\n<p>Men med denne tilgang er der risiko for phantom- l\u00e6sninger. Forestil dig f\u00f8lgende scenarie: i trin 4 f\u00e5r vi ikke bekr\u00e6ftelse fra nogen replika. Vi skal tilbagef\u00f8re denne transaktion og ikke returnere en bekr\u00e6ftelse til kunden. Da dataene blev anvendt i trin 2, opst\u00e5r der et tidsinterval mellem afslutningen af trin 2 og tilbagef\u00f8rselen af transaktionen, hvor parallelle transaktioner kan se de \u00e6ndringer, som ikke burde v\u00e6re i databasen. <\/p>\n<h2>Lose-less semisync replikation<\/h2>\n<p>\nHvis man t\u00e6nker lidt, kan man blot bytte om p\u00e5 trinnene i algoritmen for at l\u00f8se problemet med phantom-l\u00e6sninger i dette scenarie:<\/p>\n<ol>\n<li>Skrivning af transaktionen i databasens log.<\/li>\n<li><b>Send data til replikaen.<\/b><\/li>\n<li><b>Modtag bekr\u00e6ftelse fra replikaen om modtagelse af \u00e6ndringerne (de vil blive anvendt \"p\u00e5 et senere tidspunkt\").<\/b><\/li>\n<li>Anvendelse af transaktionen i database-motoren.<\/li>\n<li>Tilbagelevering af bekr\u00e6ftelse til klienten om den vellykkede anvendelse af transaktionen.<\/li>\n<\/ol>\n<p>\nNu begynder vi kun at bekr\u00e6fte \u00e6ndringer, hvis de er blevet replikeret. <\/p>\n<h2>Output<\/h2>\n<p>\nSom altid findes der ikke perfekte l\u00f8sninger, der findes kun et s\u00e6t l\u00f8sninger, som hver is\u00e6r har deres fordele og ulemper og passer til forskellige klasser af opgaver. Dette g\u00e6lder ogs\u00e5 for valget af synkroniseringsmekanismen for en replikeret database. S\u00e6ttet af fordele, som halv-synkron replikation har, er ganske solidt og interessant nok til, at det kan betragtes som v\u00e6rdifuldt, p\u00e5 trods af dets lave udbredelse.<\/p>\n<p><b>Det var alt. Vi ses p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jvDY\/\">kursus<\/a><\/noindex>!<\/b><br \/>\n<br \/>Kilde: <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.3 - 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\/da\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\udd47Hvorfor kan halv-synkron replikation v\u00e6re n\u00f8dvendig? | ProHoster","description":"Hej alle sammen. Det er \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d, der taler. I \u00f8jeblikket underviser jeg p\u00e5 OTUS-portalen i kurser om softwarearkitektur og arkitektur til h\u00f8jbelastede systemer.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/73446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=73446"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/73446\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/73447"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=73446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=73446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=73446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}