Utilizarea de către Facebook a bazelor de date NoSQL

Publicat: 2022-11-22

Facebook a implementat o serie de baze de date NoSQL pentru a-l ajuta să-și scaleze graficul social masiv. Aceste baze de date includ Apache HBase, Apache Cassandra și Apache Thrift. Prin utilizarea acestor baze de date NoSQL, Facebook este capabil să ofere utilizatorilor săi o experiență rapidă și receptivă, păstrând în același timp o cantitate mare de date.

Profilurile a peste două miliarde de oameni sunt stocate în baza de date a Facebook. Astăzi, multe aplicații de întreprindere critice pentru afaceri, cum ar fi SaaS cu mai mulți chiriași, se bazează pe arhitectura Facebook la scară internet, distribuită la nivel global, și există lecții de învățat din înțelegerea evoluției bazei de date Facebook. Mystria, o bază de date populară cu sursă deschisă , stă la baza API-ului NoSQL Graph de la FB, TAO. Ca rezultat, TAO a transformat cei 1000 de sclavi master MySQL existente, întăriți manual, în sharded slave. Ca urmare, aplicația nu mai folosește baza de date pentru a efectua tranzacții încrucișate și operațiuni comune. În plus, dacă s-a efectuat o depășire eșuată, datele comise recent ar fi pierdute. Obiectele și asocierile sunt stocate pe același cluster de servere, fără a fi aduse modificări shard-ului.

Gradul de colocare a datelor a fost determinat a fi o tehnică de optimizare importantă pentru facilitarea accesului la date cu latență scăzută. Când FB a decis să abandoneze SQL ca API de interogare și să adopte API-ul NoSQL personalizat al TAO, dezvoltatorii săi au abandonat complet SQL. Google, spre deosebire de Facebook, crea o bază de date complet nouă numită Spanner, care este consistentă la nivel global. Modelul de date al lui Spanner s-a bazat pe OLTP tradițional, cu acces aleatoriu, mai degrabă decât pe un grafic social. Scalabilitatea masivă și distribuția globală a datelor sunt integrate în stratul de baze de date al celei de-a doua generații de baze de date distribuite. Spanner folosește un consens distribuit pe fragment pentru a se asigura că fiecare fragment (și nu doar o instanță) este foarte disponibil în cazul unei defecțiuni. Această modificare de configurare se face în contextul aplicației și continuă să funcționeze normal.

Datele relevante pentru regiunea locală pot fi încă localizate în aceeași regiune dacă sunt activate caracteristicile geo-spațiale, cum ar fi geo-partiționarea la nivel de tabel și la nivel de rând. Un Commit în două faze este utilizat în tranzacțiile cu mai multe fragmente, iar un manager de tranzacții distribuit urmărește distorsiunile de ceas în toate nodurile. Am construit TAO la FB pentru a ne menține investiția existentă în MySQL fragmentat. Google a decis să rupă tradiția creând Spanner, o bază de date complet nouă, care se poate scala pe orizontală, poate reproduce georeplicarea și poate gestiona defecțiunile de infrastructură ca și cum s-ar întâmpla.

Folosim MySQL în Facebook dintr-o varietate de motive. Cu MySQL, o echipă mică poate gestiona mii de servere, oferind în același timp servicii de înaltă calitate la cel mai mic cost posibil.

TAO, un API de grafic NoSQL creat de FB la începutul anului 2009, era destinat să ruleze pe Apache Cassandra bazat pe MySQL. Scopul principal al acestei secțiuni a fost eliminarea problemelor evidențiate în cea anterioară. TAO, acronimul pentru Asociații și Obiecte, se referă la asociații și obiecte.

Stocarea timpurie a datelor de la Facebook s-a bazat în mare măsură pe o bază de date relațională MySQL. Deși inginerii Facebook s-au inspirat din lucrarea Google despre bazele de date NoSQL BigTable Google, ei au creat Cassandra, un magazin de familie de coloane bazat pe baza de date NoSQL a Facebook.

Facebook are un sistem de baze de date relaționale pentru a-și păstra datele primare. Păstrează graficul social și datele Facebook messenger (mai mult de un miliard de utilizatori) pentru mai mult de un miliard de utilizatori care folosesc fork de MySql 5.6.

Facebook folosește Nosql?

Imagine realizată de: redmondpie.com

Nu există un răspuns unic la această întrebare, deoarece utilizarea bazelor de date NoSQL variază în funcție de nevoile specifice ale fiecărei aplicații individuale. Cu toate acestea, este general acceptat faptul că Facebook utilizează o combinație de baze de date SQL și NoSQL pentru a stoca și gestiona volumul mare de date.

Atât Cloud Datastore , cât și Cloud Firestore sunt alegeri excelente pentru companiile care caută o bază de date orientată spre documente care poate fi utilizată pentru analiza datelor în timp real. Cloud Firestore este o alegere excelentă pentru documentele mici datorită arhitecturii sale optimizate și ușurinței de utilizare pe dispozitive mobile. Cloud Datastore este conceput pentru a gestiona sarcini de lucru extrem de mari și pentru a scala automat. Există, de asemenea, o mulțime de utilizare pentru el.

Cum stochează Facebook datele în baza de date?

Facebook stochează datele într-o bază de date relațională care este organizată în tabele. Datele sunt apoi stocate în coloane și rânduri în cadrul tabelelor. Datele sunt stocate sub formă de text, numere și date.

Facilitatea de stocare a datelor Facebook din Prineville, Oregon. Urmăriți totul, de la evenimentele la care participați la statutul dvs. (sau dragoste, haha, wow, fața tristă sau supărată), până la cronologia dvs. Facilitatea Facebook din Oregon poate avea o capacitate de stocare de până la 300 de petaocteți, potrivit estimărilor. Cu această cantitate de date, am putea stoca pe ea aproximativ 100 de miliarde de fotografii de dimensiune medie. Dacă Facebook nu a avut o modalitate de a vă păstra în siguranță toate postările, fotografiile, videoclipurile, actualizările de stare și așa mai departe. Dacă alegeți să nu faceți acest lucru, Facebook nu și-ar putea aminti cine sunteți. Există o cantitate mică de spațiu (sau câteva milioane) rezervată pentru a vă exprima într-un mod pe care îl doriți cu adevărat.

Este folosit pentru a personaliza reclamele și pentru a crește frecvența cu care interacționați cu Facebook. Există anumite site-uri web pe care Facebook le știe despre tine, precum și reclamele pe care le vezi și postările care îți plac.
Facebook vinde aceste date și companiilor terțe. Cambridge Analytica, o firmă de date care a lucrat la campania prezidențială a lui Donald Trump, a obținut informații personale de la 87 de milioane de utilizatori Facebook.
Pentru a fi în siguranță, trebuie să fiți conștienți de modul în care Facebook colectează și utilizează datele dvs., precum și să luați măsuri pentru a vă proteja confidențialitatea. Vă puteți șterge contul de Facebook utilizând un instrument de confidențialitate Facebook sau puteți dezactiva Facebook Pixel și butonul Facebook Like, printre altele.
Îngrijorările legate de Facebook și companiile terțe au fost ridicate ca urmare a recentului scandal de date.
Pe parcursul scandalului Cambridge Analytica, Facebook a fost criticat pentru că nu este transparent și pentru că nu acționează suficient de repede. Mark Zuckerberg, CEO-ul Facebook, a anunțat marți că își va lua un concediu pentru a face față scandalului.
De la dezvăluirile privind încălcările masive de date în Facebook și WhatsApp, Mark Zuckerberg a fost cercetat pentru lipsa sa de răspundere și pentru eșecul de a aborda preocupările legate de confidențialitate.
Potrivit acuzațiilor, Facebook a manipulat opinia politică prin utilizarea datelor utilizatorilor.
Ca urmare a problemelor de confidențialitate care au fost ridicate, Facebook a fost criticat pentru lipsa de transparență și nerezolvarea acestora.
S-a susținut că Facebook a manipulat opinia politică a utilizatorilor săi prin colectarea datelor despre utilizatori.
Utilizatorilor li se oferă opțiunea de a face o serie de pași.


Cum folosește Facebook Cassandra?

Imagine realizată de: eurekastreet.com.au

Cassandra folosește o combinație de tehnici binecunoscute pentru scalare și disponibilitate. Scopul Cassandrei a fost să răspundă cerințelor de stocare ale problemei Căutare în Inbox. Căutarea în casetă este o nouă funcție care permite utilizatorilor Facebook să își caute mesajele din căsuța de e-mail.

Facebook folosește Cassandra ca motor de căutare pentru e-mail, cu 25 TB și peste 100 de milioane de cutii poștale. Facebook a lansat Cassandra ca sursă deschisă sub licența Apache pe 1 iulie 2017. În acest videoclip, vom avea o privire în profunzime asupra arhitecturii și designului lui Cassandra. Cassandra a fost inițial menită să rezolve problema găsirii adreselor de e-mail într-o căsuță de e-mail. Când scrieți într-un memtable, veți scrie întotdeauna într-un jurnal de comitere (secvenţial), care este secvenţial pentru fiecare nod din cluster. În timpul configurării, citiți următorii pași pentru a șterge tabelul de pe disc: * Spațiu lipsit * Taste supraspațiate (implicit 128) * Durată (clientul este furnizat fără ceas). Respectă Arhitectura Staged Event-Driven (SEDA) și detectarea defecțiunilor printr-un protocol de bârfă. Are 100 de milioane de utilizatori, 4B fire și 25 TB de date și poate rula Hadoop cu 1,5 TB pe oră.

Strălucirea este oprită: Facebook renunță la Cassandra pentru Mysql

În loc de Cassandra, Facebook a ales Hbase pentru a-și construi sistemul de mesagerie. Datorită arhitecturii sale distribuite, Netflix a fost o alegere naturală să folosească Cassandra, iar până în 2013, majoritatea datelor sale au fost găzduite acolo și continuă să le folosească și astăzi. Facebook folosește MySQL, mai degrabă decât Cassandra, când vine vorba de stocarea datelor. Principala bază de date folosită de Facebook pentru stocarea tuturor datelor din rețelele sociale este MySQL. Ei au creat primul motor de bază de date , MyRocksDB, și apoi motorul de bază de date MySQL, InnoDB. MySQL și Memcache au fost combinate pentru a crea un cache.

Baza de date Nosql folosită de Facebook

Imagine făcută de: medium.com

Facebook stochează toate datele rețelelor sociale în MySQL, baza de date principală pe care se bazează.

Procesul de colectare a datelor dintr-o bază de date este cunoscut sub numele de colectarea acesteia. Poate fi folosit într-o varietate de moduri pentru a stoca și analiza date. Un SGBD este sistemul de management al bazei de date care operează într-o anumită bază de date. Pentru a urmări diferitele tipuri de informații pe care oamenii din întreaga lume le partajează între ei, Facebook folosește o serie de baze de date. Sistemul de stocare Cassandra este destinat să gestioneze cantități mari de structuri de date. Această aplicație a fost creată pentru a rezolva problema de a găsi cele mai bune rezultate de căutare în Inbox, care a fost cauzată de lipsa spațiului de stocare. Această metodă de stocare în cache utilizează numai soluții în memorie. În acest caz, accesul la piscină comună de stocare este oferit la un preț accesibil.

Cassandra Vs. Cloud Bigtable vs. Amazon Dynamodb

Cassandra este una dintre cele mai populare opțiuni de stocare backend pentru Facebook, după Google și Amazon. Cu Cloud Bigtable, puteți rula sarcini de lucru analitice și operaționale pe un serviciu de baze de date NoSQL de înaltă performanță. Amazon DynamoDB este o bază de date NoSQL fără server, cheie-valoare, care poate fi implementată la orice scară și este ideală pentru aplicații de înaltă performanță.

Baza de date folosită de Facebook

Facebook folosește un sistem de gestionare a bazelor de date relaționale (RDBMS) pentru a stoca și organiza datele. Un RDBMS este un tip de bază de date care stochează date în tabele, iar fiecare tabel este legat de alte tabele prin relații. Facebook folosește un RDBMS personalizat care este conceput pentru a gestiona cantitățile masive de date pe care le generează utilizatorii Facebook.

Există mai mult de un miliard de oameni care folosesc Facebook. Utilizatorii se exprimă și interacționează cu colegii și prietenii lor prin utilizarea postărilor pe perete. În ciuda faptului că au gestionat sute de milioane de utilizatori, inginerii Facebook au fost forțați să mențină site-ul să funcționeze fără probleme. Acest articol prezintă cititorilor câteva dintre instrumentele și metodele pe care le folosesc pentru a-și atinge obiectivele. Facebook folosește o varietate de sisteme pentru a-și menține site-ul cât mai dinamic posibil, cu peste 500 de milioane de utilizatori. Dacă aveți nevoie de scalabilitate și disponibilitate ridicată, menținând totodată performanța la un nivel înalt, Apache Cassandra este o alegere excelentă. Sistemul de înregistrare Scribe permite Facebook să se conecteze în interior dintr-o varietate de motive. Varnish poate fi folosit ca accelerator HTTP pentru a servi echilibrarea încărcăturii și conținutul cache-ului rapid.

Ce este Facebook?
Această dezvăluire a infrastructurii centrelor de date a Facebook are implicații semnificative din mai multe motive. În primul rând, demonstrează angajamentul Facebook față de calitatea continuă a serviciului. În plus, centrul de date are un nivel fără precedent de acces la operațiunile Facebook. În cele din urmă, subliniază importanța Autoscale, pe care Facebook o folosește pentru a gestiona traficul și a optimiza performanța.

De ce Facebook folosește Mysql

Pe măsură ce Facebook a crescut și SQL și MySQL au devenit omniprezente, a evoluat într-o aplicație PHP care folosea MySQL ca bază de date persistentă și memcache ca cache-ul „lookaside”. Facebook folosește astăzi peste 1000 de servere MySql pentru a-și găzdui datele, care este denumită o bază de date universală (cu mai mulți chiriași). O bază de date este puternic partiționată și replicată. Pentru a reduce numărul de fragmente necesare pentru a găsi datele, toate datele asociate sunt păstrate într-un fragment. Ce este o bază de date folosită de Netflix? Oracle este cel mai comun sistem de persistență a datelor din centrul de date Netflix. MySQL este folosit în infrastructura de recomandare a filmelor în unele zone. Bazele de date din ambele sunt baze de date relaționale .

Baza de date Facebook

O bază de date Facebook este o colecție de date care este organizată și stocată de site-ul de rețea socială Facebook. Aceste date pot include informații despre utilizatori, prietenii acestora și activitatea lor pe site. Baza de date Facebook este utilizată pentru a alimenta caracteristicile și funcțiile site-ului.

Cum a devenit Cassandra magazinul de date pentru Facebook

Datorită flexibilității SQL de modelare a datelor și a utilizării pe scară largă a MySQL atunci când FB a fost lansat pentru prima dată, MySQL a fost folosit inițial ca bază de date persistentă, iar memcache a fost folosit ca cache „lookaside” pentru graficul social.
Un petabyte de date cântărește aproximativ un milion de gigaocteți pe Facebook în fiecare zi. Un petabyte este egal cu aproximativ 300 de petaocteți de date și totul se află într-o unitate Hive.
În ciuda abandonului complet de către Facebook a lui Cassandra, aceasta este încă folosită de companii importante precum Twitter, Netflix și Apple, pentru a numi câteva. DataStax, pe de altă parte, are o versiune a instrumentului disponibilă pentru o varietate de alte afaceri.
Drept urmare, în timp ce Facebook nu își mai stochează propriile date în Cassandra, alte companii o fac.

Noua bază de date Nosql

O bază de date NoSQL, care nu este bazată pe SQL, este definită ca una care adună date într-un mod diferit decât o bază de date relațională. Bazele de date cu tabele nu au nevoie de coloane cu set fixe în tabele, sunt compatibile cu scalarea orizontală și nu necesită JOIN-uri precum bazele de date relaționale. Tipurile de baze de date NoSQL diferă în funcție de modelul de date utilizat.

Este unul dintre cele mai utilizate tipuri de baze de date în industrie pentru o varietate de scopuri. Există mai multe avantaje ale utilizării cloud computing față de bazele de date tradiționale , cum ar fi ușurința în utilizare, capacitatea crescută de stocare în cloud și securitatea îmbunătățită a datelor. Bazele de date NoSQL sunt utilizate pentru o gamă largă de scopuri, inclusiv înregistrări medicale, înregistrări financiare și alte baze de date. Baza de date de documente RavenDB NoSQL acceptă tranzacții ACID (atomicitate, consistență, izolare și durabilitate) și este o bază de date NoSQL solidă, cu capabilități solide de tip document. Cu Couchbase, puteți crea o aplicație mobilă și Internet-of- Things (IoT). De asemenea, puteți utiliza ArangoDB pentru a căuta și afișa grafice, documente și alte date. OrientDB este una dintre primele baze de date NoSQL care include suport pentru mai multe modele pentru grafice și documente.

Puteți găsi Neo4j o opțiune viabilă dacă aveți nevoie de mai mult context în baza de date pentru a obține informații despre datele dvs. MongoDB oferă o platformă diferită numită Realm, care vă permite să construiți, să testați și să lansați rapid aplicații mobile. Baza de date MarkLogic este construită pentru a gestiona baze de date cu mai multe modele, precum și sarcini de lucru care necesită capabilități NoSQL. Baza de date MarkLogic este o platformă bună de baze de date NoSQL pentru stocarea datelor relațiilor și pentru rularea lucrărilor analitice. Dacă nu doriți să faceți compromisuri, o soluție complet gestionată este cea mai bună opțiune.

Arhitectura bazei de date Fb

Arhitectura bazei de date fb este un instrument puternic care vă poate ajuta să vă organizați și să vă gestionați datele. Este un sistem flexibil care poate fi personalizat pentru a se potrivi nevoilor dumneavoastră. Cu fb, puteți stoca și recupera cu ușurință date dintr-o varietate de surse.

Facebook folosește o arhitectură de stivă cu grafice stocate în cache pentru tot ce se află deasupra nivelului inferior MySQL. Cu alte cuvinte, înseamnă că o bază de date relațională nu funcționează mai bine decât o bază de date grafică . Pe lângă prietenii prietenilor, este mai dificil să efectuați interogări complexe decât să efectuați interogări simple precum „Toate locațiile din jurul unei coordonate date”. Un grafic este cea mai bună soluție în acest caz. Pentru puțin peste 1 milion de utilizatori, se vor cheltui 1,8 secunde, în timp ce pentru puțin peste 100.000 de utilizatori vor fi cheltuite 18 secunde. Dacă aveți mai mulți utilizatori care execută aceeași interogare, rețineți că aceasta nu este singura interogare pe care o încercați. Răspunsul la întrebarea cum și-a conceput Facebook relația cu prietenii este că este foarte bine concepută. Îmi cer scuze sincer pentru faptul că nu pot să vă ajut în implementarea acestuia.