Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Apollo: NoSQL secondo Facebook

Link copiato negli appunti

Jeff Johnson, sviluppatore del core data group del Sito in Blue, ha reso noto il progetto Apollo, si tratta di un database NoSQL che gli uomini di Mark Zuckerberg hanno progettato sulla base dell'algoritmo Paxos già utilizzato in alcune piattaforme da Mountain View e Yahoo!; Apollo è scritto in C++ utilizzando il framework Apache Thrift 2 RPC, sviluppato anch'esso da Facebook per la creazione di cross-language services.

Questo strumento si presenta come un sistema gerarchico per lo storage in grado di suddividere i dati gestiti in partizioni orizzontali (shards) sfruttando un meccanismo simile a quello già proposto dall'Hadoop database HBase per il Big Data store con i region servers; esso è stato progettato basandosi sul criterio dell'on-line low latency storage per garantire un alto livello di prestazioni.

Sostanzialmente il database funziona sulla base di quattro diverese componenti: un consensus protocol basato su Raft per la gestione della replicazione dei log, il key-value store RocksDB a sua volta costruito sulla base del progetto LevelDB di Google, una Client API (Application Programming Interface) dotata di metodi read() e write() nonché un'infrastruttura FTSM (Fault Tolerant State Machines) che dovrebbe garantire continuità del servizio indipendentemente dal destino dei singoli nodi.

Apollo non sarebbe stato concepito essenzialmente come applicazione document oriented o come key-value store, esso si proporrebbe invece più come una soluzione pensata per la modifica della struttura dei dati, dove le singole porzioni di questi ultimi sarebbero caratterizzate da dimensioni contenute e, in ogni caso, comprese all'interno di un intervallo che va da 1 byte a 1 Mb.

Attualmente il progetto si troverebbe ancora in una fase di sviluppo iniziale e i tecnici di Menlo Park non lo riterrebbero pronto per l'utilizzo in fase di produzione; presto però Apollo potrebbe essere impiegato per gestire l'invio di richieste RPC verso macchine remote o come queuing system per i messaggi in uscita da Facebook verso i sistemi operativi mobili iOS e Android.

Via InfoQ

Ti consigliamo anche