{"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\/de\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya","title":{"rendered":"Warum k\u00f6nnte eine halbsynchrone Replikation notwendig sein?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Hallo zusammen. Hier ist Wladislaw Rodin. Momentan unterrichte ich auf dem Portal OTUS Kurse, die sich mit Softwarearchitektur und Hochlast-Softwarearchitektur besch\u00e4ftigen. <b>In der Vorbereitungsphase f\u00fcr den Start eines neuen Kurses <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jvDY\/\">, wo ein erfahrener Spezialist auf diesem Gebiet Ihnen erkl\u00e4rt, wie Sie handeln sollten, damit der Server nicht mehr abst\u00fcrzt.<\/a><\/noindex> habe ich beschlossen, ein kleines eigenes Material zu schreiben, das ich mit Ihnen teilen m\u00f6chte.<\/b><\/i><\/p>\n<p><img decoding=\"async\" alt=\"Warum k\u00f6nnte eine halbsynchrone Replikation notwendig sein?\" src=\"\/wp-content\/uploads\/2020\/03\/c2a1ea514249f8fca1ab9f668a899981.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Einf\u00fchrung<\/h2>\n<p>\nDa HDDs nur etwa 400-700 Operationen pro Sekunde durchf\u00fchren k\u00f6nnen (was im Vergleich zu typischen RPS f\u00fcr stark ausgelastete Systeme unzureichend ist), stellt eine klassische Festplattendatenbank einen Engpass in der Architektur dar. Daher ist es wichtig, den Skalierungsmustern dieses Speichers besondere Aufmerksamkeit zu widmen.<\/p>\n<p>Derzeit gibt es 2 Skalierungsmuster f\u00fcr die Datenbank: Replikation und Sharding. Sharding erm\u00f6glicht es, die Schreiboperation zu skalieren und somit die rps beim Schreiben, die auf einen Server Ihres Clusters entfallen, zu reduzieren. Die Replikation erm\u00f6glicht dasselbe, jedoch f\u00fcr Leseoperationen. Genau diesem Muster ist dieser Artikel gewidmet.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Replikation<\/h2>\n<p>\nWenn man sich die Replikation ganz allgemein ansieht, ist es eine einfache Sache: Sie hatten einen Server, auf dem die Daten lagen, und dann konnte dieser Server die Leseanforderungen dieser Daten nicht mehr bew\u00e4ltigen. Sie f\u00fcgen ein paar Server hinzu, synchronisieren die Daten auf allen Servern, und der Benutzer kann von jedem Server Ihres Clusters lesen. <\/p>\n<p>Trotz der scheinbaren Einfachheit gibt es mehrere Klassifizierungsm\u00f6glichkeiten f\u00fcr verschiedene Implementierungen dieses Schemas:<\/p>\n<ul>\n<li>Nach Rollen im Cluster (Master-Master oder Master-Slave)<\/li>\n<li>Nach \u00fcbermittelten Objekten (zeilenbasiert, statements-basiert oder gemischt)<\/li>\n<li>Nach dem Mechanismus zur Synchronisation der Knoten<\/li>\n<\/ul>\n<p>\nHeute werden wir uns genau mit dem 3. Punkt besch\u00e4ftigen. <\/p>\n<h2>Wie der Commit einer Transaktion abl\u00e4uft<\/h2>\n<p>\nDieses Thema geh\u00f6rt nicht direkt zur Replikation, dar\u00fcber k\u00f6nnte ein separater Artikel geschrieben werden, aber da das Verst\u00e4ndnis des Commit-Mechanismus f\u00fcr das weitere Lesen unerl\u00e4sslich ist, erlaube ich mir, die grundlegendsten Dinge in Erinnerung zu rufen. Der Commit einer Transaktion erfolgt in 3 Phasen:<\/p>\n<ol>\n<li>Aufzeichnung der Transaktion im Datenbankprotokoll.<\/li>\n<li>Anwendung der Transaktion im Datenbank-Engine.<\/li>\n<li>R\u00fccksendung der Best\u00e4tigung an den Kunden \u00fcber die erfolgreiche Anwendung der Transaktion.<\/li>\n<\/ol>\n<p>\nIn verschiedenen Datenbanken k\u00f6nnen in diesem Algorithmus Nuancen auftreten: Zum Beispiel gibt es im InnoDB-Engine von MySQL 2 Protokolle: eines f\u00fcr die Replikation (binary log) und ein anderes zur Aufrechterhaltung von ACID (undo\/redolog), w\u00e4hrend PostgreSQL ein Protokoll hat, das beide Funktionen erf\u00fcllt (write ahead log = WAL). Aber oben wurde genau das allgemeine Konzept vorgestellt, das solche Nuancen unber\u00fccksichtigt l\u00e4sst.<\/p>\n<h2>Synchronisierte (sync) Replikation<\/h2>\n<p>\nLassen Sie uns dem Commit-Algorithmus der Transaktion Logik zur Replikation der erhaltenen \u00c4nderungen hinzuf\u00fcgen:<\/p>\n<ol>\n<li>Aufzeichnung der Transaktion im Datenbankprotokoll.<\/li>\n<li>Anwendung der Transaktion im Datenbank-Engine.<\/li>\n<li><b>Daten an alle Replikate senden.<\/b><\/li>\n<li><b>Best\u00e4tigung von allen Replikaten \u00fcber die Durchf\u00fchrung der Transaktion erhalten.<\/b><\/li>\n<li>R\u00fccksendung der Best\u00e4tigung an den Kunden \u00fcber die erfolgreiche Anwendung der Transaktion.<\/li>\n<\/ol>\n<p>\nBei diesem Ansatz ergeben sich einige Nachteile: <\/p>\n<ul>\n<li>der Client wartet, bis die \u00c4nderungen auf allen Replikaten angewendet werden.<\/li>\n<li>Mit zunehmender Anzahl der Nodes im Cluster verringern wir die Wahrscheinlichkeit, dass die Schreiboperation erfolgreich abgeschlossen wird.<\/li>\n<\/ul>\n<p>\nWenn der erste Punkt mehr oder weniger klar ist, sollte der zweite Punkt erl\u00e4utert werden. Wenn bei synchroner Replikation keine Antwort von mindestens einem Node vorliegt, rollen wir die Transaktion zur\u00fcck. So erh\u00f6ht man, indem man die Anzahl der Nodes im Cluster vergr\u00f6\u00dfert, die Wahrscheinlichkeit, dass die Schreiboperation fehlschl\u00e4gt. <\/p>\n<p>K\u00f6nnen wir nur auf eine bestimmte Anzahl von Nodes, zum Beispiel 51% (Quorum), eine Best\u00e4tigung erwarten? Ja, das k\u00f6nnen wir, jedoch erfordert es im klassischen Szenario die Best\u00e4tigung von allen Nodes, da wir nur so die vollst\u00e4ndige Konsistenz der Daten im Cluster gew\u00e4hrleisten k\u00f6nnen, was unbestreitbar ein Vorteil dieser Replikationsart ist.<\/p>\n<h2>Asynchrone (async) Replikation<\/h2>\n<p>\nLassen Sie uns den vorherigen Algorithmus abwandeln. Wir werden die Daten an die Replikate \"irgendwann sp\u00e4ter\" senden, und \"irgendwann sp\u00e4ter\" werden die \u00c4nderungen auf den Replikaten angewendet:<\/p>\n<ol>\n<li>Aufzeichnung der Transaktion im Datenbankprotokoll.<\/li>\n<li>Anwendung der Transaktion im Datenbank-Engine.<\/li>\n<li>R\u00fccksendung der Best\u00e4tigung an den Kunden \u00fcber die erfolgreiche Anwendung der Transaktion.<\/li>\n<li><b>Daten an die Replikate senden und \u00c4nderungen anwenden.<\/b><\/li>\n<\/ol>\n<p>\nDieser Ansatz f\u00fchrt dazu, dass der Cluster schnell arbeitet, da wir den Client nicht warten lassen, bis die Daten zu den Replikaten gelangen und auch noch festgeschrieben werden.<\/p>\n<p>Aber die Bedingung, Daten \"irgendwann sp\u00e4ter\" auf die Replikate zu \u00fcbertragen, kann dazu f\u00fchren, dass Transaktionen verloren gehen, insbesondere best\u00e4tigte Transaktionen f\u00fcr den Benutzer, denn wenn die Daten nicht rechtzeitig repliziert wurden, wird die Best\u00e4tigung an den Client \u00fcber den erfolgreichen Abschluss der Operation gesendet, und wenn das HDD des Nodes, an den die \u00c4nderungen gesendet wurden, ausf\u00e4llt, verlieren wir die Transaktion, was zu sehr unangenehmen Folgen f\u00fchren kann.<\/p>\n<h2>Halbsynchrone (semisync) Replikation<\/h2>\n<p>\nEndlich haben wir die semi-synchrone Replikation erreicht. Diese Art der Replikation ist nicht sehr bekannt und nicht weit verbreitet, bietet jedoch ein gewisses Interesse, da sie die Vorteile sowohl der synchronen als auch der asynchronen Replikation kombinieren kann.<\/p>\n<p>Lass uns die beiden vorherigen Ans\u00e4tze kombinieren. Wir werden den Client nicht lange warten lassen, verlangen jedoch, dass die Daten repliziert werden:<\/p>\n<ol>\n<li>Aufzeichnung der Transaktion im Datenbankprotokoll.<\/li>\n<li>Anwendung der Transaktion im Datenbank-Engine.<\/li>\n<li><b>Daten an die Replikate senden.<\/b><\/li>\n<li><b>Erhalt einer Best\u00e4tigung von der Replik \u00fcber den Erhalt der \u00c4nderungen (diese werden \"irgendwann sp\u00e4ter\" angewendet).<\/b><\/li>\n<li>R\u00fccksendung der Best\u00e4tigung an den Kunden \u00fcber die erfolgreiche Anwendung der Transaktion.<\/li>\n<\/ol>\n<p>\nBeachte, dass bei diesem Algorithmus der Verlust einer Transaktion nur dann auftritt, wenn sowohl der Knoten, der die \u00c4nderungen akzeptiert, als auch der Replikationsknoten ausfallen. Die Wahrscheinlichkeit eines solchen Ausfalls wird als gering eingesch\u00e4tzt, und diese Risiken werden akzeptiert. <\/p>\n<p>Bei diesem Ansatz besteht jedoch das Risiko von Phantomlesen. Stellen wir uns folgendes Szenario vor: In Schritt 4 haben wir von keiner Replik eine Best\u00e4tigung erhalten. Wir m\u00fcssen diese Transaktion zur\u00fccksetzen, ohne dem Client eine Best\u00e4tigung zur\u00fcckzugeben. Da die Daten in Schritt 2 angewendet wurden, entsteht zwischen dem Ende von Schritt 2 und dem Zur\u00fccksetzen der Transaktion ein Zeitfenster, in dem parallele Transaktionen die \u00c4nderungen sehen k\u00f6nnten, die in der Datenbank nicht vorhanden sein sollten. <\/p>\n<h2>Lose-less semi-synchrone Replikation<\/h2>\n<p>\nWenn man ein wenig nachdenkt, kann man durch einfaches Vertauschen der Schritte im Algorithmus das Problem der Phantomlesungen in diesem Szenario beheben:<\/p>\n<ol>\n<li>Aufzeichnung der Transaktion im Datenbankprotokoll.<\/li>\n<li><b>Daten an die Replik senden.<\/b><\/li>\n<li><b>Erhalt einer Best\u00e4tigung von der Replik \u00fcber den Erhalt der \u00c4nderungen (diese werden \"irgendwann sp\u00e4ter\" angewendet).<\/b><\/li>\n<li>Anwendung der Transaktion im Datenbank-Engine.<\/li>\n<li>R\u00fccksendung der Best\u00e4tigung an den Kunden \u00fcber die erfolgreiche Anwendung der Transaktion.<\/li>\n<\/ol>\n<p>\nJetzt best\u00e4tigen wir die \u00c4nderungen nur, wenn sie repliziert wurden. <\/p>\n<h2>Ausgabe<\/h2>\n<p>\nWie immer gibt es keine perfekten L\u00f6sungen, sondern eine Reihe von L\u00f6sungen, von denen jede ihre eigenen Vor- und Nachteile hat und f\u00fcr die L\u00f6sung verschiedener Klassen von Aufgaben geeignet ist. Dies gilt auch f\u00fcr die Wahl des Mechanismus zur Synchronisierung der Daten der replizierten Datenbank. Das Set an Vorteilen, das die semi-synchrone Replikation bietet, ist ziemlich solide und interessant genug, um als bemerkenswert eingestuft zu werden, trotz ihrer geringen Verbreitung.<\/p>\n<p><b>Das w\u00e4re alles. Bis zum n\u00e4chsten Mal bei <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jvDY\/\">Kurs<\/a><\/noindex>!<\/b><br \/>\n<br \/>Quelle: <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.1.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\/de\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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\/de\/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\udd47Warum k\u00f6nnte semi-synchrone Replikation ben\u00f6tigt werden? | ProHoster","description":"Hallo zusammen. Hier ist Wladislaw Rodin. Momentan unterrichte ich auf dem Portal OTUS Kurse, die sich mit Softwarearchitektur und Hochlast-Softwarearchitektur besch\u00e4ftigen.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/73446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=73446"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/73446\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/73447"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=73446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=73446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=73446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}