^^Struttura dati autoconvergente

 

Strutture dati auto-convergenti in informatica, o CRDT Conflict-free Replicated Data Types.

Si tratta di speciali tipi di dati distribuiti che possono essere modificati in modo indipendente su nodi diversi senza coordinazione centrale, garantendo per via matematica che tutti i cloni convergano allo stesso identico stato finale.

Come Funzionano

  1. Aggiornamento locale: Ciascun nodo modifica la propria copia in autonomia, senza attendere il permesso o la risposta degli altri computer.
  2. Propagazione asincrona: I dati modificati vengono inviati agli altri nodi tramite messaggi o protocolli a dispersione (gossip) quando la rete lo permette.
  3. Unione matematica (Merge): Quando i nodi ricevono i dati dagli altri, applicano una funzione di unione basata su proprietà algebriche (come i reticoli o semireticoli) che risolve i conflitti in modo deterministico.

Vantaggi Principali

  1. Disponibilità elevata: Il sistema continua a funzionare anche se la connessione internet si interrompe o subisce ritardi gravi.
  2. Assenza di conflitti bloccanti: Non servono i tradizionali e lenti blocchi di transazione (locking) o i complessi algoritmi di consenso per decidere quale modifica sia quella "vera".
  3. Consistenza eventuale forte: Viene garantito che, una volta fermate le modifiche e scambiati i messaggi residui, ogni utente vedrà esattamente lo stesso contenuto.

 

Se vuoi approfondire, dimmi pure se ti interessa:

  1. La differenza tra state-based CRDT e delta-CRDTE
  2. Esempi pratici di utilizzo in applicazioni reali (come la modifica di documenti in tempo reale)