{"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\/fr\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya","title":{"rendered":"Pourquoi une r\u00e9plication semi-synchrone peut-elle \u00eatre n\u00e9cessaire ?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Bonjour \u00e0 tous. Ici Vladislav Rodin. Actuellement, j'enseigne sur la plateforme OTUS des cours sur l'architecture des logiciels et l'architecture des logiciels soumis \u00e0 une charge \u00e9lev\u00e9e. <b>\u00c0 l'approche du lancement d'un nouveau groupe de cours, <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jvDY\/\">\u00ab Architecte de haute charge \u00bb<\/a><\/noindex> j'ai d\u00e9cid\u00e9 d'\u00e9crire un petit article que je souhaite partager avec vous.<\/b><\/i><\/p>\n<p><img decoding=\"async\" alt=\"Pourquoi une r\u00e9plication semi-synchrone peut-elle \u00eatre n\u00e9cessaire ?\" src=\"\/wp-content\/uploads\/2020\/03\/c2a1ea514249f8fca1ab9f668a899981.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Introduction<\/h2>\n<p>\n\u00c9tant donn\u00e9 qu'un HDD ne peut effectuer qu'environ 400 \u00e0 700 op\u00e9rations par seconde (ce qui est incomparable avec les rps typiques des syst\u00e8mes \u00e0 forte charge), une base de donn\u00e9es sur disque classique repr\u00e9sente un goulet d'\u00e9tranglement de l'architecture. Il est donc essentiel de pr\u00eater une attention particuli\u00e8re aux mod\u00e8les de scalabilit\u00e9 de ce type de stockage.<\/p>\n<p>Actuellement, il existe 2 mod\u00e8les de mise \u00e0 l'\u00e9chelle des bases de donn\u00e9es : la r\u00e9plication et le sharding. Le sharding permet de mettre \u00e0 l'\u00e9chelle l'op\u00e9ration d'\u00e9criture et, par cons\u00e9quent, de r\u00e9duire le rps d'\u00e9criture sur un seul serveur de votre cluster. La r\u00e9plication permet de faire la m\u00eame chose, mais pour les op\u00e9rations de lecture. C'est \u00e0 ce mod\u00e8le que cet article est consacr\u00e9.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>R\u00e9plique<\/h2>\n<p>\nSi l'on consid\u00e8re la r\u00e9plication \u00e0 un niveau tr\u00e8s g\u00e9n\u00e9ral, c'est une chose simple : vous aviez un serveur, o\u00f9 \u00e9taient stock\u00e9es vos donn\u00e9es, puis ce serveur ne pouvait plus g\u00e9rer la charge de lecture de ces donn\u00e9es. Vous ajoutez quelques serveurs suppl\u00e9mentaires, synchronisez les donn\u00e9es sur tous les serveurs, et l'utilisateur peut lire \u00e0 partir de n'importe quel serveur de votre cluster. <\/p>\n<p>Malgr\u00e9 sa simplicit\u00e9 apparente, il existe plusieurs variantes de classification des diff\u00e9rentes r\u00e9alisations de ce sch\u00e9ma :<\/p>\n<ul>\n<li>Par r\u00f4le dans le cluster (ma\u00eetre-ma\u00eetre ou ma\u00eetre-esclave)<\/li>\n<li>Par objets envoy\u00e9s (bas\u00e9 sur les lignes, bas\u00e9 sur les instructions ou mixte)<\/li>\n<li>Par m\u00e9canisme de synchronisation des n\u0153uds<\/li>\n<\/ul>\n<p>\nAujourd'hui, nous allons nous concentrer pr\u00e9cis\u00e9ment sur le troisi\u00e8me point. <\/p>\n<h2>Comment se d\u00e9roule le commit d'une transaction<\/h2>\n<p>\nCe sujet n'est pas directement li\u00e9 \u00e0 la r\u00e9plication et pourrait faire l'objet d'un article \u00e0 part enti\u00e8re, cependant, \u00e9tant donn\u00e9 que sans comprendre le m\u00e9canisme de commit d'une transaction, la lecture suivante serait inutile, permettez-moi de rappeler les points les plus fondamentaux. Le commit d'une transaction se d\u00e9roule en 3 \u00e9tapes :<\/p>\n<ol>\n<li>Enregistrement de la transaction dans le journal de la base de donn\u00e9es.<\/li>\n<li>Application de la transaction dans le moteur de la base de donn\u00e9es.<\/li>\n<li>Retour d'une confirmation au client sa confirmant l'application r\u00e9ussie de la transaction.<\/li>\n<\/ol>\n<p>\nDans diff\u00e9rentes bases de donn\u00e9es, ce sch\u00e9ma peut pr\u00e9senter des nuances : par exemple, dans le moteur InnoDB de MySQL, il y a deux journaux : un pour la r\u00e9plication (binary log) et un autre pour maintenir l'ACID (undo\/red log), tandis que dans PostgreSQL, il n'y a qu'un seul journal qui effectue les deux fonctions (write ahead log = WAL). Cependant, ci-dessus est pr\u00e9sent\u00e9e la conception g\u00e9n\u00e9rale qui permet de ne pas tenir compte de ces nuances.<\/p>\n<h2>R\u00e9plication synchrone (sync)<\/h2>\n<p>\nAjoutons \u00e0 l'algorithme de validation de transaction la logique de r\u00e9plication des changements re\u00e7us :<\/p>\n<ol>\n<li>Enregistrement de la transaction dans le journal de la base de donn\u00e9es.<\/li>\n<li>Application de la transaction dans le moteur de la base de donn\u00e9es.<\/li>\n<li><b>Envoi des donn\u00e9es \u00e0 toutes les r\u00e9pliques.<\/b><\/li>\n<li><b>Obtention de la confirmation de toutes les r\u00e9pliques sur l'ex\u00e9cution de la transaction.<\/b><\/li>\n<li>Retour d'une confirmation au client sa confirmant l'application r\u00e9ussie de la transaction.<\/li>\n<\/ol>\n<p>\nAvec cette approche, nous rencontrons plusieurs inconv\u00e9nients : <\/p>\n<ul>\n<li>le client attend l'application des changements sur toutes les r\u00e9pliques.<\/li>\n<li>avec l'augmentation du nombre de n\u0153uds dans le cluster, nous diminuons la probabilit\u00e9 de succ\u00e8s de l'op\u00e9ration d'\u00e9criture.<\/li>\n<\/ul>\n<p>\nSi le premier point est plus ou moins clair, les raisons du deuxi\u00e8me point m\u00e9ritent une explication. Si, en r\u00e9plication synchrone, nous ne recevons pas de r\u00e9ponse d'au moins un n\u0153ud, nous annulons la transaction. Ainsi, en augmentant le nombre de n\u0153uds dans le cluster, vous augmentez la probabilit\u00e9 que l'op\u00e9ration d'\u00e9criture \u00e9choue. <\/p>\n<p>Pouvons-nous attendre la confirmation seulement d'une partie des n\u0153uds, par exemple, de 51 % (quorum) ? Oui, nous le pouvons, mais dans la version classique, une confirmation de tous les n\u0153uds est requise, car c'est ainsi que nous pouvons garantir la pleine consistance des donn\u00e9es dans le cluster, ce qui est sans aucun doute un avantage de ce type de r\u00e9plication.<\/p>\n<h2>R\u00e9plication asynchrone (async)<\/h2>\n<p>\nModifions l'algorithme pr\u00e9c\u00e9dent. Nous enverrons les donn\u00e9es aux r\u00e9pliques \u00ab \u00e0 un moment donn\u00e9 \u00bb, et \u00ab \u00e0 un moment donn\u00e9 \u00bb, les changements seront appliqu\u00e9s sur les r\u00e9pliques :<\/p>\n<ol>\n<li>Enregistrement de la transaction dans le journal de la base de donn\u00e9es.<\/li>\n<li>Application de la transaction dans le moteur de la base de donn\u00e9es.<\/li>\n<li>Retour d'une confirmation au client sa confirmant l'application r\u00e9ussie de la transaction.<\/li>\n<li><b>Envoi des donn\u00e9es aux r\u00e9pliques et application des changements par celles-ci.<\/b><\/li>\n<\/ol>\n<p>\nCette approche conduit \u00e0 un cluster qui fonctionne rapidement, car nous ne tenons pas le client en attente pendant que les donn\u00e9es arrivent aux r\u00e9pliques et sont valid\u00e9es.<\/p>\n<p>Mais la condition d'envoi des donn\u00e9es aux r\u00e9pliques \u00ab \u00e0 un moment donn\u00e9 \u00bb peut entra\u00eener une perte de transaction, en particulier la perte d'une transaction confirm\u00e9e \u00e0 l'utilisateur, car si les donn\u00e9es n'ont pas eu le temps d'\u00eatre r\u00e9pliqu\u00e9es, la confirmation de l'op\u00e9ration r\u00e9ussie est envoy\u00e9e au client, et si le disque dur du n\u0153ud qui a re\u00e7u les changements tombe en panne, nous perdons la transaction, ce qui peut avoir des cons\u00e9quences tr\u00e8s d\u00e9sagr\u00e9ables.<\/p>\n<h2>R\u00e9plication semi-synchrone (semisync)<\/h2>\n<p>\nEnfin, nous en sommes arriv\u00e9s \u00e0 la r\u00e9plication semi-synchrone. Ce type de r\u00e9plication n'est pas tr\u00e8s connu et assez rare, mais il pr\u00e9sente un int\u00e9r\u00eat consid\u00e9rable car il peut combiner les avantages de la r\u00e9plication synchrone et asynchrone.<\/p>\n<p>Essayons de combiner les deux approches pr\u00e9c\u00e9dentes. Ne gardons pas le client trop longtemps, mais exigeons que les donn\u00e9es soient r\u00e9pliqu\u00e9es :<\/p>\n<ol>\n<li>Enregistrement de la transaction dans le journal de la base de donn\u00e9es.<\/li>\n<li>Application de la transaction dans le moteur de la base de donn\u00e9es.<\/li>\n<li><b>Envoi des donn\u00e9es vers les r\u00e9pliques.<\/b><\/li>\n<li><b>Obtention d'une confirmation de la r\u00e9plique concernant la r\u00e9ception des modifications (elles seront appliqu\u00e9es \u00ab un peu plus tard \u00bb).<\/b><\/li>\n<li>Retour d'une confirmation au client sa confirmant l'application r\u00e9ussie de la transaction.<\/li>\n<\/ol>\n<p>\nNotez que, dans ce sch\u00e9ma, la perte de transaction ne se produit que si \u00e0 la fois le n\u0153ud recevant les modifications et le n\u0153ud r\u00e9plique tombent en panne. La probabilit\u00e9 d'une telle d\u00e9faillance est consid\u00e9r\u00e9e comme faible, et ces risques sont accept\u00e9s. <\/p>\n<p>Cependant, avec cette approche, il existe un risque de lectures fant\u00f4mes. Imaginons le sc\u00e9nario suivant : \u00e0 l'\u00e9tape 4, nous n'avons re\u00e7u de confirmation d'aucune r\u00e9plique. Nous devons annuler cette transaction, sans faire de retour de confirmation au client. \u00c9tant donn\u00e9 que les donn\u00e9es ont \u00e9t\u00e9 appliqu\u00e9es \u00e0 l'\u00e9tape 2, entre la fin de l'\u00e9tape 2 et l'annulation de la transaction, un intervalle de temps survient pendant lequel des transactions parall\u00e8les peuvent voir ces modifications qui ne devraient pas exister dans la base. <\/p>\n<h2>R\u00e9plication semi-synchrone sans perte<\/h2>\n<p>\nSi l'on r\u00e9fl\u00e9chit un peu, on peut simplement changer l'ordre des \u00e9tapes de l'algorithme pour corriger le probl\u00e8me des lectures fant\u00f4mes dans ce sc\u00e9nario :<\/p>\n<ol>\n<li>Enregistrement de la transaction dans le journal de la base de donn\u00e9es.<\/li>\n<li><b>Envoi des donn\u00e9es \u00e0 la r\u00e9plique.<\/b><\/li>\n<li><b>Obtention d'une confirmation de la r\u00e9plique concernant la r\u00e9ception des modifications (elles seront appliqu\u00e9es \u00ab un peu plus tard \u00bb).<\/b><\/li>\n<li>Application de la transaction dans le moteur de la base de donn\u00e9es.<\/li>\n<li>Retour d'une confirmation au client sa confirmant l'application r\u00e9ussie de la transaction.<\/li>\n<\/ol>\n<p>\nNous ne validons d\u00e9sormais les modifications que si elles ont \u00e9t\u00e9 r\u00e9pliqu\u00e9es. <\/p>\n<h2>Sortie<\/h2>\n<p>\nComme toujours, il n'existe pas de solutions id\u00e9ales, mais plut\u00f4t un ensemble de solutions, chacune ayant ses avantages et ses inconv\u00e9nients, adapt\u00e9es \u00e0 diff\u00e9rents types de probl\u00e8mes. Cela est tout \u00e0 fait vrai pour le choix du m\u00e9canisme de synchronisation des donn\u00e9es d'une base de donn\u00e9es r\u00e9pliqu\u00e9e. L'ensemble des avantages de la r\u00e9plication semi-synchrone est suffisamment solide et int\u00e9ressant pour \u00eatre reconnu comme m\u00e9ritant attention, malgr\u00e9 sa rare utilisation.<\/p>\n<p><b>C'est tout. \u00c0 bient\u00f4t sur <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jvDY\/\">cours<\/a><\/noindex>!<\/b><br \/>\n<br \/>Source : <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 - 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\/fr\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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\udd47Pourquoi la r\u00e9plication semi-synchrone peut-elle \u00eatre n\u00e9cessaire ? | ProHoster","description":"Bonjour \u00e0 tous. Ici Vladislav Rodin. Actuellement, j'enseigne sur la plateforme OTUS des cours sur l'architecture des logiciels et l'architecture des logiciels soumis \u00e0 une charge \u00e9lev\u00e9e.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/73446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=73446"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/73446\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/73447"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=73446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=73446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=73446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}