{"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 erforderlich sein?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Hallo zusammen. Hier spricht \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d. Momentan unterrichte ich auf der Plattform OTUS Kurse zur Softwarearchitektur und zu hochbelastbaren Softwarearchitekturen. <b>Im Vorfeld des Starts des neuen Kurszyklus <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jvDY\/\">\u201eArchitekt f\u00fcr hohe Lasten\u201c<\/a><\/noindex> habe ich beschlossen, ein kurzes 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 erforderlich 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 HDD nur etwa 400-700 Operationen pro Sekunde ausf\u00fchren kann (was im Vergleich zu den typischen Transaktionen pro Sekunde f\u00fcr stark ausgelastete Systeme unzureichend ist), stellt eine klassische Festplattendatenbank einen Engpass in der Architektur dar. Daher ist es wichtig, besondere Aufmerksamkeit auf die Skalierungsmuster dieses Speichers zu legen.<\/p>\n<p>Derzeit gibt es 2 Muster zur Skalierung der Datenbank: Replikation und Sharding. Sharding erm\u00f6glicht die Skalierung von Schreiboperationen und reduziert folglich die rps pro Schreiboperation, die auf einen Server Ihres Clusters entfallen. Die Replikation erm\u00f6glicht dasselbe f\u00fcr Leseoperationen. Genau diesem Muster widmet sich dieser Artikel.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Replikation<\/h2>\n<p>\nWenn man die Replikation auf einer ganz grundlegenden Ebene betrachtet, ist es eine einfache Angelegenheit: Sie hatten einen Server, auf dem Daten gespeichert waren, und dann konnte dieser Server die Leseanforderungen nicht mehr bew\u00e4ltigen. Sie f\u00fcgen ein paar weitere 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 M\u00f6glichkeiten, verschiedene Implementierungen dieses Schemas zu klassifizieren:<\/p>\n<ul>\n<li>Nach Rollen im Cluster (Master-Master oder Master-Slave)<\/li>\n<li>Nach \u00fcbermittelten Objekten (zeilenbasiert, anweisungsbasiert oder gemischt)<\/li>\n<li>Nach dem Mechanismus der Knoten-Synchronisation<\/li>\n<\/ul>\n<p>\nHeute werden wir uns besonders mit dem 3. Punkt befassen. <\/p>\n<h2>Wie der Transaktions-Commit abl\u00e4uft<\/h2>\n<p>\nDieses Thema geh\u00f6rt nicht direkt zur Replikation, k\u00f6nnte aber einen eigenen Artikel f\u00fcllen. Da jedoch das Verst\u00e4ndnis des Mechanismus des Transaktionscommits f\u00fcr das weitere Lesen unerl\u00e4sslich ist, erlaube ich mir, die grundlegendsten Dinge zu wiederholen. Der Commit einer Transaktion erfolgt in drei Schritten:<\/p>\n<ol>\n<li>Aufzeichnung der Transaktion im Datenbank-Log.<\/li>\n<li>Anwendung der Transaktion im Datenbank-Engine.<\/li>\n<li>R\u00fcckmeldung an den Kunden \u00fcber den erfolgreichen Abschluss der Transaktion.<\/li>\n<\/ol>\n<p>\nIn verschiedenen Datenbanken k\u00f6nnen in diesem Algorithmus Nuancen auftreten: Beispielsweise gibt es im InnoDB-Engine von MySQL zwei Journale: eines f\u00fcr die Replikation (binary log) und ein weiteres zur Aufrechterhaltung von ACID (undo\/redolog), w\u00e4hrend PostgreSQL ein einziges Journal hat, das beide Funktionen erf\u00fcllt (write-ahead-log = WAL). Die obige Darstellung ist jedoch die allgemeine Konzeption, die solche Nuancen unber\u00fccksichtigt l\u00e4sst.<\/p>\n<h2>Synchronisierte (sync) Replikation<\/h2>\n<p>\nF\u00fcgen wir dem Commit-Algorithmus der Transaktion die Logik zur Replikation der empfangenen \u00c4nderungen hinzu:<\/p>\n<ol>\n<li>Aufzeichnung der Transaktion im Datenbank-Log.<\/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 Ausf\u00fchrung der Transaktion erhalten.<\/b><\/li>\n<li>R\u00fcckmeldung an den Kunden \u00fcber den erfolgreichen Abschluss der Transaktion.<\/li>\n<\/ol>\n<p>\nBei diesem Ansatz haben wir einige Nachteile: <\/p>\n<ul>\n<li>Der Kunde wartet darauf, dass die \u00c4nderungen auf allen Replikaten angewendet werden.<\/li>\n<li>Mit zunehmender Anzahl von Knoten im Cluster verringern wir die Wahrscheinlichkeit, dass die Schreiboperation erfolgreich ist.<\/li>\n<\/ul>\n<p>\nW\u00e4hrend bei Punkt 1 alles mehr oder weniger klar ist, sollten die Gr\u00fcnde f\u00fcr Punkt 2 erl\u00e4utert werden. Wenn wir bei der synchronisierten Replikation keine Antwort von mindestens einem Knoten erhalten, f\u00fchren wir einen Rollback der Transaktion durch. Dadurch erh\u00f6ht sich mit einer steigenden Anzahl an Knoten im Cluster die Wahrscheinlichkeit, dass die Schreiboperation fehlschl\u00e4gt. <\/p>\n<p>K\u00f6nnen wir eine Best\u00e4tigung nur von einem Teil der Knoten erwarten, zum Beispiel von 51% (Quorum)? Ja, das k\u00f6nnen wir, jedoch erfordert die klassische Variante die Best\u00e4tigung von allen Knoten, da wir nur so die vollst\u00e4ndige Konsistenz der Daten im Cluster gew\u00e4hrleisten k\u00f6nnen, was zweifellos ein Vorteil dieser Art der Replication darstellt.<\/p>\n<h2>Asynchrone (async) Replikation<\/h2>\n<p>\nLassen Sie uns den vorherigen Algorithmus anpassen. Die Daten werden an die Replikate \u00bbirgendwann sp\u00e4ter\u00ab gesendet, und die \u00c4nderungen werden \u00bbirgendwann sp\u00e4ter\u00ab in den Replikaten angewendet:<\/p>\n<ol>\n<li>Aufzeichnung der Transaktion im Datenbank-Log.<\/li>\n<li>Anwendung der Transaktion im Datenbank-Engine.<\/li>\n<li>R\u00fcckmeldung an den Kunden \u00fcber den erfolgreichen Abschluss der Transaktion.<\/li>\n<li><b>Daten\u00fcbertragung an Replikate und deren Anwendung der \u00c4nderungen.<\/b><\/li>\n<\/ol>\n<p>\nDieser Ansatz sorgt daf\u00fcr, dass der Cluster schnell arbeitet, denn wir halten den Kunden nicht auf, w\u00e4hrend die Daten zu den Replikaten gelangen und dort auch noch festgeschrieben werden.<\/p>\n<p>Aber die Bedingung, die Daten \u00bbirgendwann sp\u00e4ter\u00ab an die Replikate zu \u00fcbertragen, kann zu einem Verlust von Transaktionen f\u00fchren, und das betrifft die best\u00e4tigte Transaktion des Nutzers, denn wenn die Daten nicht rechtzeitig repliziert werden, und die Best\u00e4tigung an den Kunden \u00fcber den erfolgreichen Abschluss der Operation gesendet wird, und die HDD bei dem Knoten, an den die \u00c4nderungen gesendet wurden, ausf\u00e4llt, verlieren wir die Transaktion, was zu sehr unangenehmen Folgen f\u00fchren kann.<\/p>\n<h2>Halb-synchrone (Semisync) Replikation<\/h2>\n<p>\nEndlich sind wir bei der halb-synchronen Replikation angekommen. Diese Art der Replikation ist eher unbekannt und nicht weit verbreitet, bietet jedoch gro\u00dfes Interesse, da sie die Vorteile sowohl der synchronen als auch der asynchronen Replikation vereinen kann.<\/p>\n<p>Versuchen wir, die beiden vorherigen Ans\u00e4tze zu kombinieren. Wir halten den Client nicht lange auf, fordern jedoch, dass die Daten repliziert werden:<\/p>\n<ol>\n<li>Aufzeichnung der Transaktion im Datenbank-Log.<\/li>\n<li>Anwendung der Transaktion im Datenbank-Engine.<\/li>\n<li><b>Daten an die Replikate senden.<\/b><\/li>\n<li><b>Best\u00e4tigung von der Replik f\u00fcr den Empfang der \u00c4nderungen erhalten (die \u00c4nderungen werden \"irgendwann sp\u00e4ter\" angewendet).<\/b><\/li>\n<li>R\u00fcckmeldung an den Kunden \u00fcber den erfolgreichen Abschluss der Transaktion.<\/li>\n<\/ol>\n<p>\nBitte beachten Sie, dass bei diesem Algorithmus der Verlust einer Transaktion nur dann auftritt, wenn sowohl der Knoten, der die \u00c4nderungen vornimmt, als auch der Knoten der Replik ausfallen. Die Wahrscheinlichkeit eines solchen Ausfalls wird als gering angesehen, und die damit verbundenen Risiken werden akzeptiert. <\/p>\n<p>Bei diesem Ansatz besteht jedoch das Risiko von Phantomlesungen. Stellen Sie sich folgendes Szenario vor: In Schritt 4 haben wir von keiner der Replikate eine Best\u00e4tigung erhalten. Wir m\u00fcssen diese Transaktion zur\u00fcckrollen, und dem Kunden keine Best\u00e4tigung zur\u00fcckgeben. Da die Daten in Schritt 2 angewendet wurden, entsteht zwischen dem Ende von Schritt 2 und dem Zur\u00fcckrollen der Transaktion eine zeitliche L\u00fccke, in der parallele Transaktionen die \u00c4nderungen sehen k\u00f6nnen, die nicht in der Datenbank vorhanden sein sollten. <\/p>\n<h2>Verlustfreie semisynchrone Replikation<\/h2>\n<p>\nWenn man ein wenig dar\u00fcber 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 Datenbank-Log.<\/li>\n<li><b>Daten\u00fcbertragung der Replikate.<\/b><\/li>\n<li><b>Best\u00e4tigung von der Replik f\u00fcr den Empfang der \u00c4nderungen erhalten (die \u00c4nderungen werden \"irgendwann sp\u00e4ter\" angewendet).<\/b><\/li>\n<li>Anwendung der Transaktion im Datenbank-Engine.<\/li>\n<li>R\u00fcckmeldung an den Kunden \u00fcber den erfolgreichen Abschluss der Transaktion.<\/li>\n<\/ol>\n<p>\nJetzt committen wir die \u00c4nderungen nur, wenn sie repliziert wurden. <\/p>\n<h2>Fazit<\/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 sich f\u00fcr verschiedene Aufgabenklassen eignet. Das gilt auch f\u00fcr die Wahl des Mechanismus zur Datensynchronisation einer replizierten Datenbank. Die Vorteile der halb-synchronen Replikation sind ziemlich solide und interessant, sodass sie trotz ihrer geringen Verbreitung Beachtung finden sollte.<\/p>\n<p><b>Das war's. Bis zum n\u00e4chsten Mal bei <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jvDY\/\">dem 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 4.9.10 - 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. \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\" \/>\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) 4.9.10\" \/>\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. \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\" \/>\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 halb-synchrone Replikation ben\u00f6tigt werden? | ProHoster","description":"Hallo zusammen. Hier ist Wladislaw Rodin. Momentan unterrichte ich auf der Plattform OTUS Kurse \u00fcber Softwarearchitektur und hochlastf\u00e4hige Softwarearchitektur. Anl\u00e4sslich des Starts eines neuen Kurses 'Architekt f\u00fcr hohe Lasten' habe ich beschlossen, ein kleines, pers\u00f6nliches Material zu verfassen, das ich mit Ihnen teilen m\u00f6chte. Einleitung Aufgrund der Tatsache, dass auf HDDs nur etwa 400-700","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. \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","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"},"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}]}}