Skip to main content
European Commission logo print header

Large-scale computation without synchronisation

Article Category

Article available in the following languages:

CRDT para aplicaciones en red no sincronizadas

Tradicionalmente, la única manera de impedir que dos ordenadores que utilizan la misma aplicación online modifiquen los mismos datos a la vez ha sido la sincronización. Convencidos de que este sistema es ineficiente y supone un desperdicio de recursos, los artífices del proyecto SYNCFREE han propuesto un planteamiento mejor basado en CRDT, siglas de Conflict-free Replicated Data Types («tipos de datos reproducidos sin conflictos»).

Economía digital icon Economía digital

Los CRDT ya se utilizan desde hace cierto tiempo. Son estructuras de datos que se pueden reproducir en numerosos ordenadores de una red y actualizarse de manera independiente sin necesidad de sincronización, y que pueden prevenir incoherencias al fusionar sus actualizaciones respectivas. No obstante, ciertas aplicaciones críticas, como los monederos virtuales, las plataformas publicitarias, las redes sociales o los juegos virtuales, aún suelen recurrir a la sincronización. «La sincronización está contrapuesta a la respuesta rápida y la disponibilidad», aseguró Marc Shapiro, informático de UPMC-LIP6 e Inria y también coordinador de SYNCFREE. «Mientras que un ordenador espera recibir de otro ordenador el permiso de actualización, no hace nada útil, desaprovecha recursos, y ni siquiera responde al usuario. Y lo que es peor, si la red se avería, la espera puede ser indefinida y la aplicación se cuelga». Los CRDT permiten que los dos ordenadores mencionados realicen sus actualizaciones de forma independiente y a la vez: uno envía sus actualizaciones al otro y cada uno fusiona las actualizaciones remotas recibidas con las suyas propias. «Esto requiere una programación muy cuidadosa y no funciona con todas las clases de datos. Pero en la práctica ha demostrado ser muy útil. Además, los programas basados en CRDT son "Available under Partition" (AP), es decir, cada ordenador puede realizar su función incluso si la red se avería. Dado que un ordenador determinado que ejecute CRDT no precisa pedir permiso, siempre puede responder de inmediato, lo que abarata el coste», explicó Shapiro. A diferencia de métodos AP anteriores, cuyo uso resultaba muy complejo para los programadores de software, un CRDT cuenta con semántica clara e introduce los detalles de la comunicación remota y la fusión en una interfaz intuitiva. Un escollo de cara a incrementar el aprovechamiento comercial de los CRDT ha sido la falta de aplicaciones y sistemas basados enteramente en esta tecnología. Esto planteó diversos problemas, concretamente en cuanto a la forma de construir un sistema de comunicación y almacenamiento basado en CRDT, la forma de mantener las propiedades deseadas al actualizar distintos fragmentos de información en un sistema AP, el modo de programar con eficacia las aplicaciones basadas en CRDT y la manera de ajustar la escala a sistemas de computación en la nube geodistribuidos con cientos de ordenadores. Estos fueron los obstáculos que SYNCFREE pretendía sortear. Según explicó Shapiro, «el proyecto ha deparado resultados positivos en todos esos ámbitos. Hemos construido Antidote, una base de datos en la nube, eficaz y de código abierto, que ya se ha probado en cientos de máquinas repartidas por todo el mundo. Hemos desarrollado nuevos métodos más escalables para almacenar CRDT y transmitir actualizaciones. Hemos construido programas grandes, y en particular uno de referencia, distribuido y exigente, denominado FMK3 (inspirado en la red sanitaria danesa FMK). Hemos demostrado el funcionamiento de un lenguaje de programación distribuido al estilo "dataflow" llamado LASP. Y por último hemos diseñado una tecnología llamada "Just-Right Consistency" para garantizar que los datos almacenados en este sistema se comporten en la práctica tal y como se pretende en la aplicación». Incluso antes de que comenzase el proyecto, varias entidades del sector ya se habían fijado en algunos de los conceptos que maneja, entre ellos los cuatro socios privados de SYNCFREE, que han aportado un gran número de requisitos para la aplicación, propuestas de desarrollo y datos procedentes de aplicaciones implantadas, reales y a escala de la nube. Uno de ellos utiliza Antidote en uno de sus productos. «Ahora que ha finalizado el proyecto SYNCFREE, ha tomado el relevo, en el marco de Horizonte 2020, otro proyecto llamado LIGHTKONE, el cual iniciamos hace poco y que cuenta con más entidades del sector. Su propósito es posibilitar una computación genérica, distribuida, masiva y situada en vanguardia. Mientras que SYNCFREE se centró principalmente en el entorno de un centro de procesamiento de datos, LIGHTKONE se propone mantener los datos y las computaciones lo más cerca posible de los usuarios. Según Shapiro, «ello plantea algunos retos nuevos y apasionantes a la hora de aumentar la escala desde unos pocos cientos de ordenadores en un entorno bien controlado hasta varios millones de ellos ubicados en entornos imprevisibles. Por otro lado, una empresa utiliza el LASP en su producción, y estamos muy esperanzados en cuanto a la adopción de Antidote. Incluso estudiamos la posibilidad de fundar una empresa para comercializar los resultados del proyecto». Entretanto, la mayoría de contribuciones del proyecto, y entre ellas Antidote, LASP, FMKe y Just-Right Consistency, se encuentran disponibles en GitHub bajo licencia Apache.

Palabras clave

SYNCFREE, Antidote, CRDT, sincronización, github, ordenador, aplicación

Descubra otros artículos del mismo campo de aplicación