You are not logged in.

1

Tuesday, September 23rd 2008, 10:57pm

Datenbank Cluster

Hallo,

bisher liefen meine Seiten immer mit einem Webserver und einem separaten Datenbankserver.
Nur interessiert es mich mal, wie man einen Datenbank Cluster aufbaut. Geht dies mit MySQL?

Ich höre von vielen Seiten, das sie bei MySQL einen Master (INSERT, UPDATE) und einen Slave (SELECT) einsetzen.

Nun kann es ja sein, das die Seite von sehr vielen Usern besucht wird und ein einziger Masterserver eindeutig überfordert ist. Könnte man diesen mittels einer Technik erweitern???

Die Slave Server könnten ja per LoadBalancer angesprochen werden aber es darf ja nur ein Master vorhanden sein. Ich hoffe Ihr versteht mich ein wenig ;)


Danke und Gruß,

Tobi :)

2

Wednesday, September 24th 2008, 9:13am

Also wenn dir 1 Master und n Slaves reichen, dann würde ich dir eine Master-Slave-Replikation mit einfachem DNS-Round-Robin davor empfehlen.
Alle Inserts laufen auf den Master (mit fester IP) und gelesen wird jeweils von localhost (was dann mal der Master, mal der Slave ist)

Das ist ziemlich einfach konfiguriert und es gibt sogar ein offizielles Howto: http://dev.mysql.com/doc/refman/5.1/de/r…tion-howto.html
Beachte die verwendete MySQL Version, hier tut sich einiges.

Der MySQL Cluster (google einfach mal) setzt die NDB Storage Engine voraus, die wiederum nicht für alle Einsatzzwecke geeignet ist. Ich glaube sogar bis MySQL 5.0 ist diese rein speicherbasiert. Es müsste also alles in den Arbeitsspeicher passen.

3

Wednesday, September 24th 2008, 6:05pm

Joa einer reicht mir aber mal von der reinen Theorie her, würde mich interessieren wie das die Seiten wie face**** etc machen, da sie ja auch auf MySQL setzen ;)

Nehme mal an im SAN System da man von dem eigenen MySQL-Cluster System noch nicht all zu viel gutes gehört hat

4

Wednesday, September 24th 2008, 10:34pm

Das einzige Statement dazu habe ich mal hier gesehen: MySQL Datenbankskalierung und Performance
Ich muss mir den Clip nochmal anschauen, wenn ich Zeit habe. Als ich ihn zum ersten mal gesehen hatte, hatte ich noch keinen Plan von der MySQL Skalierbarkeit.
Es hat sich nicht danach angehört, dass sie die MySQL Cluster Engine mit NDB nutzen.

Andererseits bin ich mir auch nicht sicher, wie sie MySQL und Memcached paaren. Mit Version 5.1 wird eine eigene Storage Engine für memcached kommen.

Im übrigen beschränkt sich Replikation nicht auf einen Master und mehrere Slaves. Es gibt auch ein Multi-Master-Szenrario (mit noch mehr Slaves). Um die Datenverteilung brauchst du dir keine Sorgen machen ;)
Große Seiten benutzen aber bestimmt keinen DNS Round Robin..
das wird was anderes in die Anwendung (in MySQL?) integriert sein um die Last sinnvoll zu verteilen.

Social bookmarks