Servizio Comunitario di Informazione in materia di Ricerca e Sviluppo - CORDIS

FP7

SyncFree — Risultato in breve

Project ID: 609551
Finanziato nell'ambito di: FP7-ICT
Paese: Francia
Dominio: Tecnologie dell’informazione e della comunicazione

CRDT per applicazioni in rete non sincronizzate

Storicamente, il solo modo per impedire che due computer che utilizzano la stessa applicazione online modifichino gli stessi dati nello stesso momento è stata la sincronizzazione. Sostenendo che questo sistema è inefficiente e rappresenta uno spreco di risorse, il progetto SYNCFREE suggerisce un approccio migliore, usando le strutture dati CRDT (Conflict-free Replicated Data Type).
CRDT per applicazioni in rete non sincronizzate
Le CRDT sono in circolazione già da molto tempo. Queste strutture dati possono essere replicate all’interno di computer multipli in una rete e aggiornate in modo indipendente senza il bisogno della sincronizzazione, e sono in grado di prevenire le inconsistenze unendo i loro rispettivi aggiornamenti. Eppure, applicazioni fondamentali come ad esempio portafogli virtuali, piattaforme pubblicitarie, reti sociali o giochi online tendono ancora a fare ricorso alla sincronizzazione.

“La sincronizzazione è antinomica rispetto alla risposta veloce e alla disponibilità,” afferma Marc Shapiro, scienziato informatico alla UPMC-LIP6 e Inria, e coordinatore di SYNCFREE. “Mentre un computer aspetta il permesso per l’aggiornamento da un altro, esso non fa nulla di utile, spreca risorse, e non risponde nemmeno all’utente. Ancora peggio, se la rete salta, l’attesa può durare per sempre, e l’applicazione è bloccata.”

Grazie alle CRDT, i due computer summenzionati possono fare i loro aggiornamenti in modo indipendente e nello stesso momento: uno invia i suoi aggiornamenti all’altro; e ciascuno unisce gli aggiornamenti remoti che riceve con i propri. “Questo richiede un’attenta programmazione e non funziona per tutti i tipi di dati. Ma ha dimostrato di essere molto utile in pratica. Inoltre, i programmi basati sulle CRDT sono disponibili in partizione (AP, Available under Partition), e questo significa che ogni computer può fare il suo lavoro anche quando la rete non funziona. Dal momento che un computer che utilizza le CRDT non richiede il permesso, esso è sempre in grado di rispondere immediatamente, e questo fa anche scendere i costi,” spiega Shapiro.

A differenza dei precedenti approcci AP, che erano molto complessi da usare per gli sviluppatori di software, una CRDT ha una semantica chiara, e racchiude i dettagli della comunicazione remota e della fusione in una interfaccia intuitiva.

Un ostacolo lungo la strada del maggiore sfruttamento commerciale delle CRDT era la mancanza di applicazioni e sistemi interamente basati su questa tecnologia. Questo poneva vari problemi, in particolare con riferimento a come costruire un sistema di comunicazione e memorizzazione basato sulle CRDT, a come mantenere delle proprietà desiderabili quando si aggiornano alcune informazioni in un sistema AP, a come programmare applicazioni basate sulle CRDT efficacemente, e a come portarlo sulla scala dei sistemi informatici cloud geo distribuiti con centinaia di computer.

Questi sono esattamente gli ostacoli che SYNCFREE intendeva superare. “Il progetto ha ottenuto dei risultati positivi in tutti questi settori,” spiega Shapiro. “Tra le altre cose, abbiamo costruito un’efficace banca dati cloud open-source, Antidote, che è stata dimostrata su centinaia di macchine distribuite in tutto il mondo. Noi abbiamo sviluppato nuovi approcci scalabili per memorizzare le CRDT e trasmettere gli aggiornamenti. Inoltre abbiamo costruito grandi programmi, in particolare un impegnativo benchmark distribuito chiamato FMKe (impostato sulla rete sanitaria danese FMK). Noi abbiamo dimostrato un linguaggio di programmazione distribuito in stile dataflow chiamato LASP, e infine abbiamo progettato una metodologia, chiamata Just-Right Consistency, per garantire che i dati memorizzati in questo sistema si comportino effettivamente come vuole l’applicazione.”

Persino prima dell’inizio del progetto, alcuni dei suoi concetti erano già stati accolti dall’industria, inclusi i quattro partner industriali di SYNCFREE che hanno ampiamente contribuito a requisiti dell’applicazione, suggerimenti per lo sviluppo, e dati provenienti da reali applicazioni su scala cloud schierate sul campo. Uno di essi sta usando Antidote in uno dei suoi prodotti.

“Adesso che il progetto SYNCFREE si è concluso, vi è un progetto successivo H2020 chiamato LIGHTKONE che abbiamo appena avviato, con un numero maggiore di partner industriali. Il suo obiettivo è quello di rendere possibile un utilizzo distribuito di massa del computer per tutti gli usi “all’avanguardia”. Mentre SYNCFREE si è concentrato molto sull’ambiente dei centri dati, LIGHTKONE mira a tenere i dati e i calcoli il più possibile vicino agli utenti. Questo presenta alcune eccitanti nuove sfide nel momento in cui si passa dalla scala di poche centinaia di computer in un ambiente ben controllato, a milioni che si trovano in ambienti imprevedibili,” dice Shapiro. “In maniera indipendente, un’azienda sta usando LASP nella produzione, e confidiamo molto nell’adozione di Antidote. Noi stiamo persino facendo dei piani per una nuova impresa per commercializzare ulteriormente i risultati del progetto.”

Nel frattempo, la maggior parte dei contributi del progetto, inclusi Antidote, LASP, FMKe e gli strumenti Just-Right Consistency, è già disponibile su GitHub sotto licenza Apache.

Keywords

SYNCFREE, Antidote, CRDT, sincronizzazione, github, computer, applicazione