Kom ihåg mig?

Databashosting

 
 
Ämnesverktyg Visningsalternativ
Oläst 2010-12-15, 07:51 #1
emilvs avatar
emilv emilv är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2004
Inlägg: 1 564
emilv emilv är inte uppkopplad
Bara ett inlägg till!
emilvs avatar
 
Reg.datum: Feb 2004
Inlägg: 1 564
Det är otroligt viktigt att den databasmotor du väljer kan skala ut till flera servrar utan problem. Detta innebär ofta ett problem med relationsdatabaser (men inte alltid! Det finns några kommersiella databaser som skalar).

Jag skulle nog börjat kika på så kallade NoSQL-databaser, ofta kallade dokumentorienterade databaser. Cassandra och MongoDB är ett par kända fria alternativ. De har inga relationer mellan olika dokument och klarar därför att dela upp dem på olika maskiner utan speciellt krångliga lösningar. Typiskt brukar även vara att sökningar och andra typer av jobb kan skalas ut till dessa maskiner automatiskt av databasmotorn.

MongoDB har till exempel stöd för MapReduce för batchjobb, där varje maskin arbetar på sitt eget data och returnerar en delmängd av det slutliga resultatet.
emilv är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-15, 08:40 #2
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Ursprungligen postat av emilv Visa inlägg
Jag skulle nog börjat kika på så kallade NoSQL-databaser, ofta kallade dokumentorienterade databaser. Cassandra och MongoDB är ett par kända fria alternativ. De har inga relationer mellan olika dokument och klarar därför att dela upp dem på olika maskiner utan speciellt krångliga lösningar. Typiskt brukar även vara att sökningar och andra typer av jobb kan skalas ut till dessa maskiner automatiskt av databasmotorn.
Cassandra brukar räknas till kolumn-orienterade databaser. Sen bör man väl tillägga att NoSQL-lägret även omfattar t ex graf-databaser, xml-databaser, key-value-stores, objektorienterade databaser osv.

Speciellt är det värt att nämna att NoSQL ofta verkar användas i tron om att det alltid kommer skala bättre, prestera bättre och allmänt lösa alla databas-problem. Faktum är att de traditionella databaserna klarar de allra flesta applikationer alldeles utmärkt och att man ofta måste strukturera om rätt grundläggande saker för att ha någon större nytta av ett alternativ. Och även då måste man välja rätt alternativ för sin egen situation. Facebook är alltid ett populärt exempel. De använder MySQL, HBase och Cassandra tillsammans (och en mängd andra tekniker, men för databasen). Alla valt utifrån datan som skulle lagras och speciellt hur den används.

Med det sagt tror jag också att emilvs mongodb kan vara intressant om det är expanderingen och klustringen som är ditt stora problem, som det låter på din fråga. Det är väldigt lätt att lägga till nya shards, det finns stöd för auto sharding, maxsize osv.

Men beskriver du inte din användning i mycket större detalj finns det ingen som kan ge dig ett informerat förslag utifrån ditt användningsområde.


Citat:
Ursprungligen postat av abergman Visa inlägg
Du skulle kunna Lastbalansera ett gäng mysqler så du sprider läsning och skrivning, dock så har du som redan sagt ett problem med datamängden, det kommer ta stopp i diskarna troligtvis.

Du skulle splitta upp databasen och lagra olika delar på olika maskiner, så att du istället för att ha 1*MASSVISMEDDATA så har du 4*INTELIKAMYCKETDATA..
Det abergman beskriver kallas sharding om du vill läsa mer information om det på nätet (det mesta är på engelska givetvis). Använder du MySQL är även MySQL Cluster värt att titta på.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-15, 08:55 #3
abergmans avatar
abergman abergman är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Feb 2010
Inlägg: 762
abergman abergman är inte uppkopplad
Mycket flitig postare
abergmans avatar
 
Reg.datum: Feb 2010
Inlägg: 762
Citat:
Ursprungligen postat av Clarence Visa inlägg
Cassandra brukar räknas till kolumn-orienterade databaser. Sen bör man väl tillägga att NoSQL-lägret även omfattar t ex graf-databaser, xml-databaser, key-value-stores, objektorienterade databaser osv.

Speciellt är det värt att nämna att NoSQL ofta verkar användas i tron om att det alltid kommer skala bättre, prestera bättre och allmänt lösa alla databas-problem. Faktum är att de traditionella databaserna klarar de allra flesta applikationer alldeles utmärkt och att man ofta måste strukturera om rätt grundläggande saker för att ha någon större nytta av ett alternativ. Och även då måste man välja rätt alternativ för sin egen situation. Facebook är alltid ett populärt exempel. De använder MySQL, HBase och Cassandra tillsammans (och en mängd andra tekniker, men för databasen). Alla valt utifrån datan som skulle lagras och speciellt hur den används.

Med det sagt tror jag också att emilvs mongodb kan vara intressant om det är expanderingen och klustringen som är ditt stora problem, som det låter på din fråga. Det är väldigt lätt att lägga till nya shards, det finns stöd för auto sharding, maxsize osv.

Men beskriver du inte din användning i mycket större detalj finns det ingen som kan ge dig ett informerat förslag utifrån ditt användningsområde.



Det abergman beskriver kallas sharding om du vill läsa mer information om det på nätet (det mesta är på engelska givetvis). Använder du MySQL är även MySQL Cluster värt att titta på.
Har du någon aning om hur prestandan skulle bli med 1 SQL-nod och 2 storagenoder?
abergman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-15, 09:10 #4
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Ursprungligen postat av abergman Visa inlägg
Har du någon aning om hur prestandan skulle bli med 1 SQL-nod och 2 storagenoder?
Mycket sämre än att skapa en egen lösning med sharding/replikering (beroende på syftet för valet av mysql cluster) klassiska MySQL på samma 3 maskiner. På nivån med tre noder kan jag inte se mycket poäng med att använda cluster, förutom att man har den framtida skalbarheten. Tydligt exempel på när skalbarhet (ännu) inte har något med prestanda att göra.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-15, 08:55 #5
Westmans avatar
Westman Westman är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jun 2004
Inlägg: 4 021
Westman Westman är inte uppkopplad
Klarade millennium-buggen
Westmans avatar
 
Reg.datum: Jun 2004
Inlägg: 4 021
Börjar du prata såna mängder frågor och så stor datamängd så är dina maskinexempel väldigt klena. Sen är det också rätt viktigt att veta vilken motor du kommer att använda då det ger möjligheter och även restriktioner i om man kan och bör använda många "små" servrar eller ett fåtal stora.

När det gäller IOPS så finns det exempel på system som klarar rätt stora mängder men då pratar vi servrar med PCI Express SSD:er. Exempel från IBM.
Westman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-15, 11:52 #6
KristianE KristianE är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2008
Inlägg: 3 074
KristianE KristianE är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2008
Inlägg: 3 074
Citat:
Ursprungligen postat av Westman Visa inlägg
Börjar du prata såna mängder frågor och så stor datamängd så är dina maskinexempel väldigt klena. Sen är det också rätt viktigt att veta vilken motor du kommer att använda då det ger möjligheter och även restriktioner i om man kan och bör använda många "små" servrar eller ett fåtal stora.

När det gäller IOPS så finns det exempel på system som klarar rätt stora mängder men då pratar vi servrar med PCI Express SSD:er. Exempel från IBM.
Jepp. SATA/SAS-controllers har en gräns och roterande skivor har stora begränsningar.
En av våra partners arbetar med Fusion I/O PCIe-kort. Läsprestandan är ca 1.5
Gigabyte per sekund och skrivprestandan ligger på 1.4 Gigabyte per sekund.

PCIe-controllern har såklart också en gräns men bandbredden är bra mycket högre
än 6 Gbit SAS, t.ex.

Skicka gärna PM om nån vill veta mer.

Core i7 är ingen serverprocessor och jag skulle starkt avråda att använda denna.
Ska du ha något motsvarande/bättre så är det Xeon 5600-serien du bör titta på.
24 GB RAM fylls snabbt om du nu ska ha oändligt med databasstorlek. 5600-serien
stöder 144 GB RAM per CPU så det är bara att köpa på.
KristianE är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-15, 12:27 #7
Sludent Sludent är inte uppkopplad
Medlem
 
Reg.datum: Dec 2007
Inlägg: 258
Sludent Sludent är inte uppkopplad
Medlem
 
Reg.datum: Dec 2007
Inlägg: 258
Citat:
Ursprungligen postat av KristianE Visa inlägg
Core i7 är ingen serverprocessor och jag skulle starkt avråda att använda denna.
Ska du ha något motsvarande/bättre så är det Xeon 5600-serien du bör titta på.
24 GB RAM fylls snabbt om du nu ska ha oändligt med databasstorlek. 5600-serien
stöder 144 GB RAM per CPU så det är bara att köpa på.
5600-serien stödjer 288 GB, 5500-serien stödjer 144 GB.
Sludent är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-15, 09:00 #8
Sludent Sludent är inte uppkopplad
Medlem
 
Reg.datum: Dec 2007
Inlägg: 258
Sludent Sludent är inte uppkopplad
Medlem
 
Reg.datum: Dec 2007
Inlägg: 258
Reagerade också på den klena hårdvaran som i princip hör hemma på skrivbordet.
Sludent är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-15, 09:47 #9
johan1234 johan1234 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2009
Inlägg: 905
johan1234 johan1234 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2009
Inlägg: 905
Absolut intressant och inte alltid helt lätt. Känner dock att en viktig puck som är väldigt styrande inte får rätt utrymme - och det är lasten som är extremt styrande. En sak är att växa en databas till 50 TB och ha några köra queries mot den. En annan är att ha 25000 samtidiga användare på den databasen och vilja få resultat från en tabell med några miljoner rader - på millisekunder. Vad är det som gäller tror du?

Vi har kunder som kör alla varianter. Klustrat, replikering och olika former av uppdelning för att klara last och storlek. Kan ge ett råd som vi normalt ger... De större kunderna vi har som kör flera TB och har mycket stor last (som snittar tusentals samtidiga användare) - har vi så här långt alltid rekommenderat dedikerade lösningar för. De flesta skalar dock framsidan - dvs webbservrar mm - i en cloud miljö så de kan skala upp och ner med automatik.
johan1234 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-15, 13:16 #10
Westmans avatar
Westman Westman är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jun 2004
Inlägg: 4 021
Westman Westman är inte uppkopplad
Klarade millennium-buggen
Westmans avatar
 
Reg.datum: Jun 2004
Inlägg: 4 021
Om vi ändå pratar Intelproppar och 5600-serien så har den också en extra liten feature och det är inbyggd krypteringsfunktion (AES). Jag var inte alldeles pigg när han från Intel pratade men här vaknade jag till.

EDIT: Hittar inte belägg för att AES-NI skulle vara begränsat till X56xx men ska maila Intelmannen och fråga.

Senast redigerad av Westman den 2010-12-15 klockan 13:25
Westman är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 13:41.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017