MySQL Cluser sinnvoll bei großen Datenbanken?

MySQL Cluser sinnvoll bei großen Datenbanken?

am 02.11.2006 15:04:22 von Christian Schmelzer

Hallo,
zur Zeit haben wir 5 DB Server mit etwa 20 Datenbanken, d.h. jeder Server
hat ca. 4 Datenbanken. Die Datenbanken sind in der Summe über 100 GB groß.
Wir haben nun überlegt auf ein MySQL Cluster zu migrieren, d.h. aus den 5
Servern ein Cluster zu bauen und alle DBs im Cluster abzulegen. Hintergrund
ist die Verfügbarkeit und Performance. Nun habe ich aber gelesen, dass MySQL
die Daten im Cluster komplett im Ram hält. Ist das wirklich so? Dann wäre
das ja so gar nicht möglich, denn 5 Server mit je 100 GB Ram sind
unbezahlbar.

Christian

Re: MySQL Cluser sinnvoll bei großen Datenbanken?

am 02.11.2006 15:30:25 von Axel Schwenke

"Christian Schmelzer" wrote:

> zur Zeit haben wir 5 DB Server mit etwa 20 Datenbanken, d.h. jeder Server
> hat ca. 4 Datenbanken. Die Datenbanken sind in der Summe über 100 GB groß.
> Wir haben nun überlegt auf ein MySQL Cluster zu migrieren, d.h. aus den 5
> Servern ein Cluster zu bauen und alle DBs im Cluster abzulegen.
....

> Nun habe ich aber gelesen, dass MySQL
> die Daten im Cluster komplett im Ram hält. Ist das wirklich so?

Nein, das ist gelogen ;-)

..
..
..
..
..
..
..
..
..
..
..
..
..

Klar ist das so. Cluster ist für Daten mit tausenden Schreibzugriffen
pro Sekunde. Das schafft man nur, wenn man die Daten im RAM hält.

Mit 5.1 kann MySQL Cluster zumindest BLOB Daten auf der Platte halten.
Vielleicht hilft das ja.


XL

Re: MySQL Cluser sinnvoll bei großen Datenbanken?

am 02.11.2006 15:47:33 von Christian Schmelzer

Axel Schwenke wrote:
> "Christian Schmelzer" wrote:
>
>> zur Zeit haben wir 5 DB Server mit etwa 20 Datenbanken, d.h. jeder
>> Server hat ca. 4 Datenbanken. Die Datenbanken sind in der Summe über
>> 100 GB groß. Wir haben nun überlegt auf ein MySQL Cluster zu
>> migrieren, d.h. aus den 5 Servern ein Cluster zu bauen und alle DBs
>> im Cluster abzulegen.
> ...
>
>> Nun habe ich aber gelesen, dass MySQL
>> die Daten im Cluster komplett im Ram hält. Ist das wirklich so?
>
> Nein, das ist gelogen ;-)
>
> .

[...]

> Klar ist das so. Cluster ist für Daten mit tausenden Schreibzugriffen
> pro Sekunde. Das schafft man nur, wenn man die Daten im RAM hält.
>
> Mit 5.1 kann MySQL Cluster zumindest BLOB Daten auf der Platte halten.
> Vielleicht hilft das ja.
>

Hallo,
ok, dann ist es nichts für uns, denn in BLOBs liegen keine Daten, es sind
einfach x Millionen Datensätze.

Gibt es andere Lösungen? Habe gerade continuent Sequoia gefunden. Jemand
Erfahrung damit?

Christian

Re: MySQL Cluser sinnvoll bei großen Datenbanken?

am 02.11.2006 21:09:46 von pkoeker

Christian Schmelzer schrieb:
> zur Zeit haben wir 5 DB Server mit etwa 20 Datenbanken, d.h. jeder Server
> hat ca. 4 Datenbanken. Die Datenbanken sind in der Summe über 100 GB groß.
> Wir haben nun überlegt auf ein MySQL Cluster zu migrieren, d.h. aus den 5
> Servern ein Cluster zu bauen und alle DBs im Cluster abzulegen. Hintergrund
> ist die Verfügbarkeit und Performance. Nun habe ich aber gelesen, dass MySQL
> die Daten im Cluster komplett im Ram hält. Ist das wirklich so?

Nein, das kann ich nicht glauben.
Ich kenne den MySql Cluster nicht, sondern nur den von MaxDB, und dort
ist ganz bestimmt nicht so!


--
_____
| \
|____/
|eter

Re: MySQL Cluser sinnvoll bei großenDatenbanken?

am 02.11.2006 22:33:06 von Christian Hammers

On 2006-11-02 Peter Köker wrote:
> Christian Schmelzer schrieb:
> > zur Zeit haben wir 5 DB Server mit etwa 20 Datenbanken, d.h. jeder Serv=
er
> > hat ca. 4 Datenbanken. Die Datenbanken sind in der Summe über 100 GB
> > groß. Wir haben nun überlegt auf ein MySQL Cluster zu migrieren, d.=
h.
> > aus den 5 Servern ein Cluster zu bauen und alle DBs im Cluster
> > abzulegen. Hintergrund ist die Verfügbarkeit und Performance. Nun habe
> > ich aber gelesen, dass MySQL die Daten im Cluster komplett im Ram häl=
t.
> > Ist das wirklich so?=20
>=20
> Nein, das kann ich nicht glauben.
> Ich kenne den MySql Cluster nicht, sondern nur den von MaxDB, und dort=20
> ist ganz bestimmt nicht so!

NDB ist in 5.0 eine reine "in-memory" engine. In 5.1 hat sich das ein wenig
geändert, aber das beste, was die Doku hergab war dies hier:
"In MySQL 5.1, only non-indexed columns can be held on disk; indexes and
indexed column data continue to be stored in memory. This trade-off betwe=
en
the use of indexes and conservation of RAM is something you must keep in
mind as you design Disk Data tables."
http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-disk-da ta.html

Ich hatte zwar in Erinnerung, daß in 5.1 oder danach auch komplett disk-
basierte Tabellen möglich sind, fand aber gerade nichts dazu in der Doku.

tschüss,

-christian-

Re: MySQL Cluser sinnvoll bei großen Datenbanken?

am 02.11.2006 23:03:53 von Axel Schwenke

Peter Köker wrote:
> Christian Schmelzer schrieb:

>> ... Nun habe ich aber gelesen, dass MySQL
>> die Daten im Cluster komplett im Ram hält. Ist das wirklich so?
>
> Nein, das kann ich nicht glauben.

Glaub es ruhig. Es ist so.

> Ich kenne den MySql Cluster nicht, sondern nur den von MaxDB, und dort
> ist ganz bestimmt nicht so!

Du mußt das im Kontext sehen. MySQL Cluster aka NDB Storage Engine ist
keine All-Purpose SQL Engine, sondern kommt aus dem Telco Bereich.
Genauer gesagt ist das ein Erbstück von Ericsson. Das Ding ist auf die
Bedürfnisse einer Telco-Anwendung zugeschnitten: kleine Datensätze,
aber extrem hoher Durchsatz und sehr hohe Anforderungen an die
Verfügbarkeit. Ursprünglich konnte man mit dem NDB-Cluster nur über
das native NDB-API kommunizieren. Erst durch die Anbindung an MySQL
kann das Ding jetzt überhaupt SQL.

Außer für Telcos ist NDB auch interessant als Session-Backend für
Webshops (Neckermann hat das) oder generell für Online-Billing.


XL