{"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\/es\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya","title":{"rendered":"\u00bfPor qu\u00e9 puede ser necesaria la replicaci\u00f3n semis\u00edncrona?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Hola a todos. Soy Vladislav Rodin. Actualmente ense\u00f1o en el portal OTUS cursos relacionados con la arquitectura de software y la arquitectura de software de alta carga. <b>Con el inicio de un nuevo ciclo del curso <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jvDY\/\">\u00abArquitecto de altas cargas\u00bb<\/a><\/noindex> decid\u00ed escribir un peque\u00f1o material autoral que quiero compartir con ustedes.<\/b><\/i><\/p>\n<p><img decoding=\"async\" alt=\"\u00bfPor qu\u00e9 puede ser necesaria la replicaci\u00f3n semis\u00edncrona?\" src=\"\/wp-content\/uploads\/2020\/03\/c2a1ea514249f8fca1ab9f668a899981.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Introducci\u00f3n<\/h2>\n<p>\nDebido a que en un HDD solo se pueden realizar entre 400 y 700 operaciones por segundo (cosa que no se compara con los t\u00edpicos rps que enfrentan los sistemas de alto rendimiento), una base de datos cl\u00e1sica basada en disco se convierte en un cuello de botella en la arquitectura. Por lo tanto, es crucial prestar atenci\u00f3n a los patrones de escalabilidad de este tipo de almacenamiento.<\/p>\n<p>En este momento existen 2 patrones de escalado de bases de datos: replicaci\u00f3n y sharding. El sharding permite escalar las operaciones de escritura y, como consecuencia, reducir el rps de escritura que recae en un servidor de su cl\u00faster. La replicaci\u00f3n permite hacer lo mismo, pero con las operaciones de lectura. Este \u00faltimo patr\u00f3n es el que aborda este art\u00edculo.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Replicaci\u00f3n<\/h2>\n<p>\nSi miramos la replicaci\u00f3n desde una perspectiva general, es algo simple: ten\u00edas un servidor donde estaban los datos, y luego ese servidor dej\u00f3 de manejar la carga de lectura de esos datos. Agregas un par de servidores, sincronizas los datos en todos los servidores, y el usuario puede leer desde cualquier servidor de tu cl\u00faster. <\/p>\n<p>A pesar de su aparente simplicidad, existen varias formas de clasificar diferentes implementaciones de este esquema:<\/p>\n<ul>\n<li>Por roles en el cl\u00faster (master-master o master-slave)<\/li>\n<li>Por los objetos transmitidos (basado en filas, basado en sentencias o mixto)<\/li>\n<li>Por el mecanismo de sincronizaci\u00f3n de nodos<\/li>\n<\/ul>\n<p>\nHoy abordaremos precisamente el tercer punto. <\/p>\n<h2>C\u00f3mo ocurre el commit de la transacci\u00f3n<\/h2>\n<p>\nEste tema no se relaciona directamente con la replicaci\u00f3n, podr\u00eda escribirse un art\u00edculo por separado, sin embargo, dado que sin entender el mecanismo del commit de transacciones la lectura posterior es in\u00fatil, me permitir\u00e9 recordar las cosas m\u00e1s b\u00e1sicas. El commit de la transacci\u00f3n ocurre en 3 etapas:<\/p>\n<ol>\n<li>Registro de la transacci\u00f3n en el diario de la base de datos.<\/li>\n<li>Aplicaci\u00f3n de la transacci\u00f3n en el motor de la base de datos.<\/li>\n<li>Devoluci\u00f3n de la confirmaci\u00f3n al cliente sobre la aplicaci\u00f3n exitosa de la transacci\u00f3n.<\/li>\n<\/ol>\n<p>\nEn diversas bases de datos, este algoritmo puede tener matices: por ejemplo, en el motor InnoDB de MySQL hay dos registros: uno para replicaci\u00f3n (binary log) y otro para mantener ACID (undo\/red log), mientras que en PostgreSQL hay un registro que cumple ambas funciones (write ahead log = WAL). Sin embargo, aqu\u00ed se presenta la concepci\u00f3n general que permite no considerar tales matices.<\/p>\n<h2>Replicaci\u00f3n sincr\u00f3nica (sync)<\/h2>\n<p>\nAhora a\u00f1adamos l\u00f3gica al algoritmo de confirmaci\u00f3n de transacciones para replicar los cambios recibidos:<\/p>\n<ol>\n<li>Registro de la transacci\u00f3n en el diario de la base de datos.<\/li>\n<li>Aplicaci\u00f3n de la transacci\u00f3n en el motor de la base de datos.<\/li>\n<li><b>Env\u00edo de datos a todos los r\u00e9plicas.<\/b><\/li>\n<li><b>Recepci\u00f3n de confirmaci\u00f3n de todas las r\u00e9plicas sobre la ejecuci\u00f3n de la transacci\u00f3n en ellas.<\/b><\/li>\n<li>Devoluci\u00f3n de la confirmaci\u00f3n al cliente sobre la aplicaci\u00f3n exitosa de la transacci\u00f3n.<\/li>\n<\/ol>\n<p>\nCon este enfoque, enfrentamos una serie de desventajas: <\/p>\n<ul>\n<li>el cliente espera la aplicaci\u00f3n de cambios en todas las r\u00e9plicas.<\/li>\n<li>con un aumento en el n\u00famero de nodos en el cl\u00faster, disminuimos la probabilidad de que la operaci\u00f3n de escritura se realice con \u00e9xito.<\/li>\n<\/ul>\n<p>\nSi bien el primer punto es m\u00e1s o menos claro, las razones del segundo punto merecen explicaci\u00f3n. Si en la replicaci\u00f3n sincr\u00f3nica no recibimos respuesta de al menos un nodo, revertimos la transacci\u00f3n. As\u00ed, al aumentar el n\u00famero de nodos en el cl\u00faster, aumentamos la probabilidad de que la operaci\u00f3n de escritura falle. <\/p>\n<p>\u00bfPodemos esperar confirmaci\u00f3n solo de una parte de los nodos, por ejemplo, del 51% (quorum)? S\u00ed, podemos, sin embargo, en la variante cl\u00e1sica se requiere confirmaci\u00f3n de todos los nodos, ya que as\u00ed aseguramos la plena consistencia de los datos en el cl\u00faster, lo que es una gran ventaja de este tipo de replicaci\u00f3n.<\/p>\n<h2>Replicaci\u00f3n asincr\u00f3nica (async)<\/h2>\n<p>\nModifiquemos el algoritmo anterior. Vamos a enviar los datos a las r\u00e9plicas \"en alg\u00fan momento despu\u00e9s\", y \"en alg\u00fan momento despu\u00e9s\" los cambios aplicados en las r\u00e9plicas:<\/p>\n<ol>\n<li>Registro de la transacci\u00f3n en el diario de la base de datos.<\/li>\n<li>Aplicaci\u00f3n de la transacci\u00f3n en el motor de la base de datos.<\/li>\n<li>Devoluci\u00f3n de la confirmaci\u00f3n al cliente sobre la aplicaci\u00f3n exitosa de la transacci\u00f3n.<\/li>\n<li><b>Env\u00edo de datos a las r\u00e9plicas y aplicaci\u00f3n de cambios por ellas.<\/b><\/li>\n<\/ol>\n<p>\nEste enfoque hace que el cl\u00faster funcione r\u00e1pidamente, ya que no mantenemos al cliente esperando hasta que los datos lleguen a las r\u00e9plicas y se confirmen.<\/p>\n<p>Sin embargo, la condici\u00f3n de enviar datos a las r\u00e9plicas \"en alg\u00fan momento despu\u00e9s\" puede llevar a la p\u00e9rdida de transacciones, y de hecho, a la p\u00e9rdida de transacciones confirmadas al usuario, ya que si los datos no se replicaron a tiempo, se envi\u00f3 una confirmaci\u00f3n al cliente sobre la correcta realizaci\u00f3n de la operaci\u00f3n, y si el nodo que recibi\u00f3 los cambios tiene un fallo de HDD, perdemos la transacci\u00f3n, lo que puede tener consecuencias muy desagradables.<\/p>\n<h2>Replicaci\u00f3n semisincr\u00f3nica (semisync)<\/h2>\n<p>\nFinalmente hemos llegado a la replicaci\u00f3n semisincr\u00f3nica. Este tipo de replicaci\u00f3n no es muy conocido ni muy com\u00fan, sin embargo, es de gran inter\u00e9s, ya que puede combinar las ventajas de la replicaci\u00f3n tanto sincr\u00f3nica como asincr\u00f3nica.<\/p>\n<p>Intentemos combinar los 2 enfoques anteriores. No mantendremos al cliente esperando por mucho tiempo, pero requeriremos que los datos sean replicados:<\/p>\n<ol>\n<li>Registro de la transacci\u00f3n en el diario de la base de datos.<\/li>\n<li>Aplicaci\u00f3n de la transacci\u00f3n en el motor de la base de datos.<\/li>\n<li><b>Env\u00edo de datos a las r\u00e9plicas.<\/b><\/li>\n<li><b>Recepci\u00f3n de confirmaci\u00f3n de la r\u00e9plica sobre la recepci\u00f3n de los cambios (se aplicar\u00e1n 'en alg\u00fan momento despu\u00e9s').<\/b><\/li>\n<li>Devoluci\u00f3n de la confirmaci\u00f3n al cliente sobre la aplicaci\u00f3n exitosa de la transacci\u00f3n.<\/li>\n<\/ol>\n<p>\nTenga en cuenta que con este algoritmo la p\u00e9rdida de transacciones solo ocurre en caso de que tanto el nodo que recibe los cambios como el nodo r\u00e9plica fallen. La probabilidad de tal fallo se considera baja, y estos riesgos se asumen. <\/p>\n<p>Pero con este enfoque existe el riesgo de lecturas fantasma. Imaginemos el siguiente escenario: en el paso 4 no recibimos confirmaci\u00f3n de ninguna r\u00e9plica. Debemos retroceder esta transacci\u00f3n y no devolver confirmaci\u00f3n al cliente. Dado que los datos se aplicaron en el paso 2, entre la finalizaci\u00f3n del paso 2 y el retroceso de la transacci\u00f3n hay un vac\u00edo temporal, durante el cual transacciones paralelas pueden ver esos cambios que no deber\u00edan estar en la base de datos. <\/p>\n<h2>Replicaci\u00f3n semisincr\u00f3nica sin p\u00e9rdida<\/h2>\n<p>\nSi reflexionamos un poco, simplemente cambiando el orden de los pasos del algoritmo, podemos solucionar el problema de las lecturas fantasma en este escenario:<\/p>\n<ol>\n<li>Registro de la transacci\u00f3n en el diario de la base de datos.<\/li>\n<li><b>Env\u00edo de datos a la r\u00e9plica.<\/b><\/li>\n<li><b>Recepci\u00f3n de confirmaci\u00f3n de la r\u00e9plica sobre la recepci\u00f3n de los cambios (se aplicar\u00e1n 'en alg\u00fan momento despu\u00e9s').<\/b><\/li>\n<li>Aplicaci\u00f3n de la transacci\u00f3n en el motor de la base de datos.<\/li>\n<li>Devoluci\u00f3n de la confirmaci\u00f3n al cliente sobre la aplicaci\u00f3n exitosa de la transacci\u00f3n.<\/li>\n<\/ol>\n<p>\nAhora solo confirmamos los cambios si han sido replicados. <\/p>\n<h2>Salida<\/h2>\n<p>\nComo siempre, no existen soluciones ideales, solo un conjunto de soluciones, cada una con sus ventajas y desventajas, adecuadas para resolver diferentes clases de problemas. Esto es igualmente cierto para la elecci\u00f3n del mecanismo de sincronizaci\u00f3n de datos en una base de datos replicada. El conjunto de ventajas que ofrece la replicaci\u00f3n semisincr\u00f3nica es bastante s\u00f3lido e interesante como para considerarla digna de atenci\u00f3n, a pesar de su baja difusi\u00f3n.<\/p>\n<p><b>Eso es todo. Nos vemos en <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jvDY\/\">curso<\/a><\/noindex>!<\/b><br \/>\n<br \/>Fuente: <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\/es\/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=\"es_ES\" \/>\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\/es\/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\udd47\u00bfPor qu\u00e9 puede necesitarse la replicaci\u00f3n semisincr\u00f3nica? | ProHoster","description":"Hola a todos. Soy Vladislav Rodin. Actualmente ense\u00f1o en el portal OTUS cursos relacionados con la arquitectura de software y la arquitectura de software de alta carga.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/pochemu-mozhet-ponadobitsya-polusinhronnaya-replikacziya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/73446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=73446"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/73446\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/73447"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=73446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=73446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=73446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}