^^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
- Aggiornamento locale: Ciascun nodo modifica la propria copia in
autonomia, senza attendere il permesso o la risposta degli altri computer.
- Propagazione asincrona: I dati modificati vengono inviati agli
altri nodi tramite messaggi o protocolli a dispersione (gossip) quando la
rete lo permette.
- 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
- Disponibilità elevata: Il sistema continua a funzionare anche se
la connessione internet si interrompe o subisce ritardi gravi.
- 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".
- 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:
- La differenza tra state-based CRDT e delta-CRDTE
- Esempi pratici di utilizzo in applicazioni reali (come la modifica di
documenti in tempo reale)