Quale database utilizza effettivamente FACEBOOK?

Ciao a tutti…..

Questo è il mio primo post sul blog e non so come scriverlo, ma ci sto ancora provando. Quindi allacciate le cinture e preparatevi per le montagne russe che cavalcherò con tutti voi con alcune delle domande che a volte mi vengono in mente.

La mia domanda di oggi è “Quale database utilizza effettivamente Facebook?”

Un miliardo di persone usa FACEBOOK. Gli utenti si esprimono e interagiscono con i loro colleghi e amici attraverso post in bacheca, caricando le loro foto, passando informazioni sugli eventi e altre informazioni significative e, per questo motivo, Facebook ha bisogno di un database ampio e scalabile. Immagino che sia per questo che è una parola chiave di ricerca di Google molto popolare. 🙂

Ho fatto molte ricerche su questo argomento e sono giunto alla conclusione che Facebook utilizza varie tecniche di database. La sfida per gli ingegneri di Facebook è stata quella di mantenere il sito senza intoppi nonostante la gestione di quasi 1 miliardo di utenti attivi.

Questo articolo esamina alcuni dei software e delle tecniche che utilizzano per portare a termine la loro missione.

MYSQL:

Facebook utilizza principalmente MySQL per l’archiviazione di dati strutturati, come post in bacheca, informazioni sull’utente, timeline, ecc. Questi dati vengono replicati tra i vari data center.

IMBOTTITURA:

È anche importante notare che Facebook fa un uso massiccio di Memcached, un sistema di memorizzazione nella cache utilizzato per velocizzare i siti Web dinamici basati su database memorizzando nella cache dati e oggetti nella RAM per ridurre i tempi di lettura. il caricamento del database. Avere un

Il sistema di memorizzazione nella cache consente a Facebook di recuperare i tuoi dati il ​​più velocemente possibile.

Se non devi andare al database, otterrà solo i tuoi dati dalla cache in base al tuo ID utente.

ALPACA:

L’app Foto è una delle funzionalità più popolari su Facebook. Ad oggi, gli utenti hanno caricato più di 15 miliardi di foto, rendendo Facebook il più grande sito di condivisione di foto. Per ogni foto caricata, Facebook genera e archivia quattro immagini di dimensioni diverse, che si traducono in un totale di 60 miliardi di immagini e 1,5 PB di spazio di archiviazione. L’attuale tasso di crescita è di 220 milioni di nuove foto a settimana, che si traduce in 25 TB di spazio di archiviazione aggiuntivo consumato settimanalmente. Implementa un server di foto basato su HTTP che archivia le foto in un archivio di oggetti generico chiamato Haystack.

CASSANDRA:

Il database Apache Cassandra è la scelta giusta quando hai bisogno di scalabilità e alta disponibilità senza compromettere le prestazioni. Facebook lo usa per la sua ricerca nella posta in arrivo.

SCRIVERE:

Scribe è un sistema di registrazione flessibile che Facebook utilizza internamente per una moltitudine di scopi. È stato creato per gestire la registrazione su scala Facebook e gestisce automaticamente le nuove categorie di registrazione non appena vengono visualizzate.

VERNICE:

Varnish è un acceleratore HTTP che può fungere da bilanciatore del carico e anche contenuto della cache che può quindi essere servito alla velocità della luce. Facebook utilizza Varnish per visualizzare foto e immagini del profilo, gestendo miliardi di richieste ogni giorno.

HIPHOP PER PHP:

HipHop per PHP è un insieme di motori di esecuzione PHP. HipHop è stato sviluppato da Facebook ed è stato rilasciato come open source all’inizio del 2010. Ad oggi, Facebook ha ottenuto una riduzione di 6 volte nell’utilizzo della CPU per il sito che utilizza HipHop rispetto ad Apache e Zend PHP. Facebook è in grado di muoversi velocemente e trattenere un gran numero di ingegneri che possono lavorare su tutta la codebase. Quindi, mentre “Quale database usa Facebook?” Sembra una domanda semplice, puoi vedere che gli sviluppatori di FACEBOOK hanno aggiunto una varietà di altri sistemi per renderlo davvero scalabile sul web per i suoi 500 milioni di utenti.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *