grote databases

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marthijn Buijs

Marthijn Buijs

26/10/2015 10:58:23
Quote Anchor link
Hallo mensen,

Ik begon mij af te vragen wat voor soort database-service Facebook, Instagram, Google etc gebruikt.
Want zou me niet echt kunnen voorstellen dat ze MySQL gebruiken voor zo veel gegevens.

Hoe groot de database van ook is, alle resultaten heb je binnen enkele seconden.

Zou iemand dit weten?
Ik ben namelijk best wel benieuwd.
 
PHP hulp

PHP hulp

24/12/2024 18:22:13
 
Willem vp

Willem vp

26/10/2015 11:06:13
 
- Ariën  -
Beheerder

- Ariën -

26/10/2015 11:07:12
Quote Anchor link
De meeste grote sites hebben een eigen structuur opgebouwd, uit diverse databases.
Een interessant artikel is het volgende over hoe Facebook hun opslag heeft georganiseerd.

https://code.facebook.com/posts/1433093613662262/-under-the-hood-facebook-s-cold-storage-system-/
Gewijzigd op 26/10/2015 11:07:57 door - Ariën -
 
Pg Vincent

Pg Vincent

31/10/2015 17:11:37
Quote Anchor link
Instagram, Skype, Etsy, SourceFourge en Heroku draaien PostgreSQL.

"Hoe groot de database van ook is, alle resultaten heb je binnen enkele seconden."

Dat komt door twee dingen: caching en sharding.
Caching is precies dat: de pagina's worden niet realtime opgebouwd maar gewoon opgeboerd uit cache. Google heeft wel een index van miljarden pagina's maar die verwerken ze tot resultsets op basis van de zoekoprachten die mensen over de jaren hebben opgegeven en zodra jij zoekt combineren ze die resultaten met jouw query en lepelen gewoon "oude meuk" op.

Maar een groot deel van de performance komt door sharding. Je praat niet met één grote database, maar met een hele bups veel kleinere databases die vaak niet eens alle data bevatten die je opvraagt.

Je kunt het je zo voorstellen; als je 100Mln leden hebt die allemaal een eigen pagina hebben dan kun je dat opdelen in 26 databases, één voor alle leden wiens naam begint met 'a', één voor 'b', etc. dan heb je nog maar 3Mln leden per database en is de performance per database dus een factor 26 beter. Als je dan ook nog de geografische locatie meeneemt dan kun je de pagina's van Nedelanders neerzetten op 26 servers die ook echt in Nederland staan. Vraag je een pagina van een Chinees op dan ga je naar de Chinese servers in China.

Het enige probleem daarbij is dat je er liefst voor wilt zorgen dat op die databases ook echt alle data voor die pagina's aanwezig is en dus moet je data dubbel opslaan en beheren en dat is een hele klus. Als b.v. een Chinees ineens heftig gaattrenden in Luxemburg dan wil je die pagina's graag ook op de Luxemburgse servers hebben want internationale traffic is trager (en duurder).

Omdat elke shard klein is en weinig hoeft te doen kan hij goedkoop zijn en dus kun je er meerdere van neerzetten en dat betekent weer dat elke shard redundant is; als er een uitvalt nemen zijn broertjes het over. Dat betekent dat elke shard opzich niet de meest betrouwbare database ter wereld hoeft te zijn en dat opent de weg naar MySQL en MongoDB die wel snel, maar niet betrouwbaar zijn.

Je moet alleen zorgen dat ergens in je serverpark een master database staat die wel 100% betrouwbaar is....
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.