Please enable JavaScript.
Coggle requires JavaScript to display documents.
Cassandra (Architettura (Componenti (Nodi: memorizzano i dati, Data center…
Cassandra
Architettura
Sistema p2p distribuito
Composto da diversi nodi
-
Ogni nodo in un cluster può accettare richieste di lettura e scrittura indipendentemente da dove i dati sono realmente memorizzati all'interno del cluster
-
-
Replica dei dati
-
In caso di dati non aggiornati da parte di un nodo, si avvierà la procedura della lettura di riparazione. Essa consiste nel fornire all'utente finale il dato aggiornato e, in background, colmare il gap del nodo fornendogli l'informazione recente
-
Avviene attraverso il protocollo di Gossip: ogni nodo scopre quali nodi costituiscono il cluster ed il loro stato. Selezione random dei peers. Bassa frequenza di comunicazione (basato sul gossip reale)
Scoperta fallimento: il processo di gossip traccia il "battito di vita" di ogni nodo. Se entro una certa soglia un nodo non risponde allora viene considerato morto
Elasticità trasparente: i nodi possono essere aggiunti e rimossi online, senza andare in down
-
-
Componenti
-
-
-
-
Mem-table: struttura dati in memoria. Dopo un commit-log, i dati vengono scritti qui
SSTable: file su disco che si occupa di defluire i dati dalla mem-table e mantenerli permanentemente
Filtro bloom: tipo speciale di cache. Utilizzato dopo ogni query. Ha lo scopo di verificare velocemente se un elemento è membro di un set
Operazioni di scrittura
Ogni attività di scrittura viene catturata dal commit logs. Analizzati i log, successivamente si passa alla scrittura reale all'interno di una mem-table. Quando la mem-table è piena allora la si svuota scrivendo il suo contenuto in un SSTable file (periodicamente vengono scartate le informazioni non necessarie). Tutte le scritture vengono automaticamente partizionate ed inoltrare agli altri nodi del cluster
Operazioni di lettura
Le informazioni vengono prese dal mem-table ed il bloom filter cerca l'appropriato SSTable nel quale è memorizzata l'informazione
Caratteristiche
-
Gestisce diversi tipi di dato: strutturato, semi-strutturato e non strutturati
-
-
-
-
-
Cos'è e cosa offre
-
-
-
E' scalabile, tollerante ai guasti e consistente
-
Consistenza
-
Any to All
Scrittura: il nodo coordinatore (quello a cui si è collegato il client) scrive in tutti i nodi dove risiede la replica del dato; aspetta l'ack del primo nodo per rispondere al client; gli altri ack arriveranno in modo asincrono
-
-
Se tutti gli scrittori smettono di scrivere allora i valori convergeranno, altrimenti il sistema comunque proverà a mantenere la convergenza muovendo "ondate" di informazioni aggiornate in ritardo rispetto agli ultimi valori inviati al client
-
-
Cap Theorem: AP, Availability, Partition Tolerance