Meta ha comenzado a desplegar MySQL Raft en sus centros de datos para sustituir a sus actuales bases de datos semisíncronas MySQL. El nuevo motor de consenso ofrece ventajas operativas y permite a los servidores MySQL gestionar las promociones y las responsabilidades de afiliación de forma independiente.
El centro de datos MySQL de Meta es uno de los mayores despliegues MySQL del mundo, con una estructura masiva de shards y georeplicación con millones de shards. Este clúster, que opera en varias regiones y centros de datos, almacena petabytes de datos y funciona en miles de servidores. Da soporte al gráfico social de la empresa y a una serie de servicios como mensajería, anuncios y feeds.
Según el equipo de ingeniería, la nueva implementación de MySQL ofrecerá una mayor fiabilidad, seguridad demostrable, mejoras considerables en el tiempo de conmutación por error y simplicidad operativa, sin comprometer el rendimiento de escritura.
Anteriormente, Meta utilizaba el protocolo de replicación semisíncrona (semisync) de MySQL para la replicación. El primario utilizaba la replicación semisíncrona a dos réplicas de sólo registro (logtailers) dentro de la región primaria para una latencia por debajo del milisegundo, empleando la replicación asíncrona estándar MySQL de primario a réplica para la distribución a otras regiones.
El equipo decidió adoptar un enfoque completamente nuevo, actualizando MySQL y transformándolo en un sistema verdaderamente distribuido. Meta optó por cambiar a Raft, con operaciones tanto del plano de control como del plano de datos incluidas en el mismo registro replicado.
MySQL Raft se basa en Apache Kudu, que Meta modificó para satisfacer los requisitos de MySQL y publicó una bifurcación como proyecto de código abierto, kuduraft. Las nuevas características añadidas a kuduraft incluyen FlexiRaft, una opción que soporta dos quórums de intersección diferentes, y proxy, que permite el uso de un nodo intermedio proxy para reducir el ancho de banda de la red. Además, las mejoras en la compresión y la abstracción de registros permiten comprimir las cargas útiles binarias de los registros antes de su distribución e implementar varios formatos físicos de archivos de registro.
Con plataformas como AppMaster que proporcionan potentes herramientas sin código para crear aplicaciones backend, web y móviles, las soluciones de bases de datos simplificadas son esenciales para un desarrollo de software eficiente y escalable. Con la transición a MySQL Raft, Meta ha dado un paso significativo hacia la consecución de una mayor fiabilidad y la racionalización de las operaciones, lo que podría inspirar a otras empresas a adoptar soluciones similares y mejorar sus propios sistemas de bases de datos.