Per cosa viene usata la cache TAO in Facebook?
TAO è il data store distribuito che è ampiamente utilizzato in Facebook per memorizzare e servire il grafico sociale. L'intera architettura è altamente ottimizzata in lettura, supporta un modello di dati a grafo e funziona in più regioni geografiche. TAO conserva alcuni dei vantaggi chiave dell'architettura memcached/mysql separando nettamente i livelli di caching dal negozio persistente, permettendo a ciascuno di essi di essere scalato indipendentemente. A qualsiasi utente del sistema presenta una singola API unificata che fa apparire l'intero sistema come un gigantesco database a grafo.
I vantaggi chiave del sistema includono:
- Fornisce una separazione pulita della logica dell'applicazione/prodotto dall'accesso ai dati fornendo un'API a grafo semplice ma potente e un modello di dati per memorizzare e recuperare i dati. Questo permette agli ingegneri di prodotto di Facebook di muoversi velocemente.
- Impiegando una cache write-through TAO permette a Facebook di fornire una migliore esperienza utente e di preservare l'importantissima semantica di coerenza read-what-you-write anche quando l'architettura si estende su più regioni geografiche.
- Impiegando una cache read-through write-through TAO protegge anche meglio gli store persistenti sottostanti evitando problemi come thundering herds senza compromettere la coerenza dei dati.
TAO è stato in produzione presso Facebook per diversi anni e al suo picco serve più di un miliardo di richieste di lettura e diversi milioni di richieste di scrittura al secondo.
Abbiamo appena scritto un post sul blog di TAO [1] che fornisce un sacco di contesto sulla motivazione del lavoro, l'architettura generale del sistema e il modello di dati. Un documento tecnico completo su TAO è anche pubblicato come parte degli atti dell'Usenix ATC 2013 [2] che fornisce ancora più dettagli sul design e l'implementazione.
[1] TAO: The power of the graph
[2] TAO: Facebook's Distributed Data Store for the Social Graph
Articoli simili
- Come viene sostituito il blocco della cache nella cache completamente associativa?
- Un HDD con 256mb di cache è significativamente più veloce di un HDD con 64mb di cache?
- Qual è la differenza tra una cache SLC e una cache DRAM negli SSD?
- Perché la "velocità della pellicola" o ISO è ancora usata quando la pellicola non è usata nella fotografia digitale?