Oprettet man. d. 15. juni 2009 kl. 15:52:29

s0mmer
s0mmer (3.685 point. Point ude: 5.635)

Google, Facebook mm. - Hvordan?

Hej Eksperter,

Jeg har lidt spørgsmål som jeg håber i kan svare på. Det er lidt løst, og den snak som jeg finder bedst får points. Evt. deling.

Det handler i bund og grund om større online steder såsom google, facebook osv osv.

1. Hvordan behandles så mange data så hurtigt? Et svar med indeksering rækker ikke. Jeg vil helst have det helt konkret.

2. Større sites som nævnte eks. kodet i php. Helt konkret.. Hvordan køres deres "passive" algoritmer? Altså.. hvis noget data skal udregnes om en bruger eksempelvis. Cronjob? Nej vel?

Forklar forklar forklar.. :)

Skrevet man. d. 15. juni 2009 kl. 16:10:59| #1

arne_v
arne_v (1.005.623 point)
Du forventer vel ikke at faa en kopi af source code til G eller FB?

Google har aldrig offentliggjordt hvordan deres soegemaskine virker.

Baseret paa rygter saa:
- bruger den en crawler skrevet i Python
- gemmer data i deres eget fil system (GFS)
- har al data i memory fordelt paa hundredetusinder af servere spredt ud over hele jorden
- bruger deres egen web server som via smarte algoritmer ved hvilken server der har de data som spoerges efter

FB er saa vidt vides en helt "normal" web app baseret paa PHP og MySQL.

Bare i lidt stoerre skala. De siges at have 1800 MySQL servere koerende.

Men der er ikke nogle geniale snuptags loesninger til den slags. Fornuftig infrastruktur. Fornuftig database struktur. Fornuftig SQL.

Det er muligt at du synes at optimering af indexes er kedeligt, men det er altsaa en vigtig ting for stoerre databaser.

Med databaser i FB stoerrelse er partitionering nok mindst lige saa vigtig. Men som tommelfinger regel har du ikke brug for at partitionere med <1TB data (og nu kommer DBA'erne sikker efter mig fordi det naturligvis afhaenger af data, men en tommelfinger regel er jo lige netop det).

Skrevet man. d. 15. juni 2009 kl. 16:32:59| #2

s0mmer
s0mmer (3.685 point)
arne_v > Nej jeg forventede ingen kildekode.

Jeg var samtidig heller ikke så interesseret i hvordan søgemaskinen virker. Men mere som du kommer ind på med "normale web-app's baseret på php & mysql".

Jeg takker derfor mange gange for forklaringen med databasen.

Men hvad med mit andet spørgsmål, har du et bud der?

Skrevet man. d. 15. juni 2009 kl. 18:11:43| #3

arne_v
arne_v (1.005.623 point)
Jeg er ikke helt sikker paa hvad du leder efter med spoergsmaal 2.

Beregnede data kan beregnes naar der er brug for dem eller de kan beregnes med bestemte tidsintervaller.

Det afgoerende i den sammenhaeng er vel om data skal vaere 100% uptodate hele tiden.

Hvis noget skal beregnes en gang i doegnet er cron vel helt fint. Selvom der findes alternativer.

Taet beslaeget paa denne problem stilling er spoergsmaalet om cache (i applikationen, cache i databasen er en helt anden sag). Brug af cache kan forbedre performance rigtigt meget. Men der er nogle problemer som skal haandteres lige saa snart vi taler clustering.

Skrevet man. d. 15. juni 2009 kl. 18:19:22| #4

s0mmer
s0mmer (3.685 point)
arne_v > Lad mig give dig et konkret eksempel..

Et brugersystem ønsker at vide noget om brugeren. Hvad han har købt, hvad han har lavet osv osv.. Systemet tjekker en masse historik igennem for således at vise det mest relevante data til brugeren når han ønsker det.

Et sådant tjek går jeg ikke ud fra skal gøres i det øjeblik en bruger ønsker at få vist noget data?

Skal disse data regnes på en gang i døgnet vha. cron? Eller hvordan fungerer det?

Skrevet man. d. 15. juni 2009 kl. 18:37:18| #5

arne_v
arne_v (1.005.623 point)
En saadan rapport tror jeg man vil generere on the fly.

antal brugere x antal mulige soegninger er saa stort at det vil vaere haabloest at pregenerere dem.

Hvis det vil belaste online systemet for meget, saa replikerer man data til et DWH og koerer sine rapporter mod dette.

Nogle gang emed en lidt anden tabelstruktur som er mere gearet mod rapporter.

Skrevet man. d. 15. juni 2009 kl. 18:45:17| #6

s0mmer
s0mmer (3.685 point)
arne_v > Hmm bare lige så vi er helt enige..

Så når brugeren "Tester13" klikker på "Køb varer", så genereres de relevante varer on-the-fly. Dette kunne foregå ved at tjekke tidligere køb, søgningener, visninger osv osv..

I mit hoved vil det komme til at køre ret tungt?

- Såfremt vi er enige nævner du DWH som en løsning, kan du kort forklare/introducere dette?

Skrevet man. d. 15. juni 2009 kl. 19:18:08| #7

arne_v
arne_v (1.005.623 point)
DWH er en loesning for back office brug - du vil slaa et eller andet op omkring en bruger.

Salget af groenne sodavandsis fordelt paa maaneder for de sidste 3 aar hvis det er betakt med credit card.

Ingen grund til at ramme online databasen med den slags crap.

Skrevet man. d. 15. juni 2009 kl. 19:23:18| #8

arne_v
arne_v (1.005.623 point)
At komme med forslag til koeb udfra brugerens hidtidige koeb vil nok normalt laves mod online databasen omend det sagtens kunne laves mod en readonly DWH lignende database.

Med et index paa bruger boer det ikke vaere saa tungt.

Naar du rammer svaervaegts klassen vil du putte den slags paa separate servere. Men indtil da kan du godt bare slaa det op.

At generere dem fra et batch job lyder ikke tiltalende for mig. Databasen bliver draebt hvis alle koeres samtidigt. Saa man skal til at have lavet noget schedulering som koerer brugerne paa forskellige tidspunkter. Lidt besvaerligt.

Og hvis brugerne logger ind 5 minutter efter at have koebt en dims vil de nok foretraekke at der vises tilbehoer til den dims.

Skrevet man. d. 15. juni 2009 kl. 19:39:13| #9

s0mmer
s0mmer (3.685 point)
arne_v > Jeg takker mange gange. Dine svar har været nyttige. Send venligst et svar, så du kan få dine fortjente points. Og god aften :)

Skrevet man. d. 15. juni 2009 kl. 21:02:36| #10


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Procentregning

Oprettet den 11. februar 2012 kl. 11.26
sevinding giver 60 point for svar | Giv et svar »

Ville ikke tildele at upload det til database eller komme...

Oprettet den 10. februar 2012 kl. 21.23
tobrukDk giver 15 point for svar | Giv et svar »

HTTP Post XML og modtag svar

Oprettet den 10. februar 2012 kl. 17.55
mrkaynex giver 200 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger