GridTalk.de

Normale Version: Skalierung bei wachsenden Grids
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Während man bei einer loaklen Standalone noch mit einer guten alten Filedatenbank (Tatsächlich abgeleitet vom guten alten DBase) arbeiten kann, wird für "ernsthaftere" Installationen schon ein richtiger Datenbankserver benutzt. OpenSim ist hier für MySQL ausgelegt.

Die Geschichte von MySQL

Dieses Datenbanksystem hat eine interessante Karriere hinter sich, die so etwa vor 10 Jahren begann. Obwohl es von Anfang an ein OpenSource Produkt war, steckte ein Unternehmen, MySQL A.B., hinter der Entwicklung, die Hauptsächlich an Consulting zum Produkt verdienten. Wer bereits mit Datenbanksystemen arbeitete, konnte MySQL zu der Zeit noch nicht wirklich ernst nehmen, es war ein sehr rudimentäres System mit grossen Schwächen im bei komplexeren Abfragen, ohne grundlegende Funktionen wie gespeicherte Prozeduren oder Trigger.

Bei dem was es konnte, war es aber aus diesem Grund auch besonders schnell, und so setzte sich MySQL z.B. gegen das, ebenfalls als Opensource existierende, PostGreSQL durch, das wirklich ein sehr mächtiges, aber auch eher langsames und schwer zu bedienendes Datenbanksystem war.

Gerade Webentwickler liebten MySQL und es wurde mehr oder weniger die Standarddatenbank für alle Projekte auf Basis von PHP und die möglichkeit für Hoster, LAMP Server günstig aufzusetzen, da keine Lizenzkosten anfielen, hat die Kombination letztlich zum Standard für Webapplikationen gemacht.

In der Welt der kommerziellen Datenbankanbieter passierte in der Zwischenzeit so einiges. Oracle war lange Zeit der Marktführer, bis hin zu einem Punkt, wo sie "abhoben". Soll heissen, das Produkt wurde immer aufgeblähter, komplexer (es gibt alleine vier verschiedene Stellenbeschreibungen für die Menschen, die beruflich mit Oracle arbeiten) mit einer Abfragesprache, die sich wenig an die offiziellen Standards hielt und einer eigenen Programmiersprache. Vorteile gab es jedoch beim Thema Sicherheit und Skalierbarkeit, weshalb sie immer noch recht beliebt war in Bereichen wie Enterprise Resource Planning (komplexe Warenwirtschaftssysteme) wie zum Beispiel SAP (eine deutsche Firma aus Waldorff).

SAP mochte diese Abhängigkeit von einem Drittanbieter aber nicht so wirklich und man entwickelte ein eigenes Datenbanksystem, das sich an Oracle orientierte: SAPDB. Die meisten Kunden setzten aber weiterhin auf das, für sie bewährte, Oracle, und die Entwicklung einer Datenbanksoftware ist teuer, also kam die SAP AG auf die Idee, SAPDB als OpenSource freizugeben, um so den Pool freier Entwickler zu nutzen (es war ja eh nie ein Produkt, an dem sie direkt verdienten).
SAP versuchte allerdings, die Kontrolle in der Hand zu behalten und setzte das ganze auch nicht unter die GNU Lizenz.

Ähnlich wie bei Netscapes Mozilla ging die Rechnung nicht ganz auf, gerade auch deshalb, weil sich im OpenSource-Bereich MySQL so durchgesetzt hatte. Und jetzt passierte etwas interessantes, die SAP AG schenkte der MySQL A.B. die (mächtige) SAP DB komplett, und dieses Geschenk hat dafür gesorgt, das das MySQL Datenbanksystem tatsächlich mächtiger wurde, und sich zu einem wirklich ernstzunehmenden System entwickelte. Das ganze wurde dann noch dadurch getoppt, das Oracle selbst die geballte freie Konkurrenz, die sie auch nicht durch kostenlose Varianten ihres Produkts bekämpfen konnte, schlichtweg aufkauften. Gut für die Gründer von MySQL A.B. und gut für "professionelles" OpenSource, denn diese Erfolgsgeschichte zeigt, das man auch als Unternehmen grossen finanziellen Erfolg haben kann, wenn man OpenSource Software entwickelt.

Wo steht MySQL jetzt und was bedeutet das für OpenSim-Grid Betreiber?

Auch wenn OpenSim als solches nur wenige der mächtigeren Funktionen nutzt gibt es einen ganz wichtigen Aspekt, der dem Datenbankserver einiges Abverlangt: Skalierung.

Skalierung bedeutet, dass ein Datenbanksystem mit dem Wachstum einer Anwendung mithalten muss. Und wie schnell hier Grenzen erreicht werden, sehe ich schon an meinem, Zweiuser-Grid mit zwei Regionen, dass bei ca. 3000 Inventoryitems und ca 30000 prims schon etwa 1,5 GB auf der Festplatte verbucht.

Das Problem: Eigentlich kennt MySQL keine grossartigen, eingebauten Skalierungsoptionen. Um zu skalieren, muss es in der Lage sein, sich quasi über mehrere Rechner zu verteilen. So lange man mit einem Rechner arbeitet, sind diesem natürliche Grenzen gesetzt, man kann nur eine gewisse Anzahl an RAM und Festplatten verbauen.

Dennoch verwenden bekannte und datenlastige Webunternehmen wie Flickr, Youtube oder Facebook MySQL. Die Datenmengen würden jeden einzelnen Rechner sprengen. Wie machen die das?

Skalierungskonzepte für MySQL

Im kleineren Rahmen:

Solange die Datenbank noch auf einem Rechner Platz hat, sind folgende Dinge sehr vorteilhaft:

- Möglichst viel RAM
- viele einzelne, schnelle, Festplatten, auf die Tabellen als einzelne Dateien abgelegt werden. Auf keinen Fall mehrere Festplatten über ein RAID zu einer virtuellen verbinden!

Prozessorleistung kann man dabei eher vernachlässigen, alles, was mit Datendurchsatz zu tun hat dagegen, sollte so schnell wir möglich sein.

Bei OpenSim Grids lassen sich die Datenbanken für Robust.exe und OpenSim.exe trennen und auf zwei verschiedenen Rechnern betreiben.

und wenn das nicht mehr reicht?

Die grosse Skalierung:

1. Replication

Webanwendungen sind leselastig, Schreibzugriffe finden eher selten statt. Also lässt man mehrere Rechner laufen und verteilt die Abfragen gleichmässig auf die Rechner, ähnlich, wie es auch mit Webservern gemacht wird. Gibt es einen schreibenden Zugriff, muss dieser an alle Server weitergeleitet werden.

2. Sharding

Tabelleninhalte werden auf Kopien verteilt. Statt einen Server zu haben mit einer grossen Tabelle, hat man mehrere Server mit der Tabelle, aber jede hat nur einen Teil der Inhalte.

Der Nachteil bei beiden Varianten, die meist in Kombination eingesetzt werden, ist, dass MySQL das nicht von sich aus organisieren kann. Während allerdings Webseitenunternehmen, wie die Oben genannten, die vollständige Kontrolle über den Datenbankzugriff haben und den Datenbankzugriff in der entsprechenden Schicht organisieren können, haben OpenSim-Gridbetreiber diesen Luxus nicht.

Lösungskonzepte

Neugierig, wie ich bin, habe ich heute mal ein wenig Recherchiert, aber bislang nur einen Anbieter gefunden, der eine "Organisationssoftware" anbietet, bei der man so aufgeteilte Datenbanken praktisch benutzen kann, als wäre eine einzige Datenbankinstanz dahinter. Das Produkt heist: ScaleBase und ist recht teuer, es kostet eine jährliche Lizenzgebühr im vierstelligen Bereich. Dennoch ist es letztlich günstiger, als eigene Lösungen zu entwickeln. Facebook zum Beispiel jongliert mit mehr als 1800 MySQL Servern, da muss man sich nicht wundern, warum schon die Seite schon bei kleinen Änderungen so Fehleranfällig ist.

Fazit:

Wer anfängt ein Grid mit grossen Wachstumsaussichten aufzubauen, sollte beachten, dass hier eventuell ein grosser Kostenfaktor auf ihn zukommt, und es in der Preisgestaltung berücksichtigen. Wenn jemand andere, möglichst kostengünstigere Konzepte kennt, wäre ich sehr gespannt, hier davon zu lesen.

Und was mich auch sehr interessieren würde, wäre, welche Datenbank LindenLab für Second Life verwendet.

PS: Nach Dorenas Kritik den "Sim on a Stick" Teil korrigiert.
Sarah:
Zitat:Während die Sim on a Stick noch mit einer guten alten Filedatenbank (Tatsächlich abgeleitet vom guten alten DBase) arbeitet, wird für "ernsthaftere" Installationen schon ein richtiger Datenbankserver benutzt. OpenSim ist hier für MySQL ausgelegt.

Sorry,das stimmt nicht.
bei der Sim on a Stick ist ein mobiler Mysql-datenbank Server dabei.

Und zwar MoWes:
http://www.chsoftware.net/de/mowes/mowes.../mowes.htm
Danke, Dorena. Das ist mir neu, da setzte ich die Annahme vor das Wissen, sollte man wirklich nicht tun ;-)
Halb so wild und danke für deinen interessanten ThreatSmile
Ich habe gerade gemerkt, das sich noch eine Unaufmerksamkeit eingeschlichen hat. Oracle hat MySQL A.B. nicht direkt gekauft, sondern zuerst Sun, an deren Geschäftsmodell ich so langsam etwas zweifle (Product: Java, Kostenlos, Aufgekauftes Produkt: StarOffice, zu GPL OpenSource umgewandelt, Aufgekauftes Produkt: MySQL, bereits unter der GPL, womit verdien(t)en die überhaupt Geld?) und das Unternehmen Sun wurde dann von Oracle aufgekauft.

Ich hab die entsprechenden Nachrichten verpasst, aber die Frage nach der Motivation Suns ist sicher interessant. Die Paarung Java und Oracle (DB) ist mindestens so festgefahren, wie die Paarung PHP und MySQL, vermutlich war es ein ähnlicher Versuch, sich von Oracle zu lösen, wie damals der der SAP AG. Und dann werden sie von Oracle aufgekauft. Ironie der Wirtschaft *G*
Hallo ;D

Man sind das lange texte, ist man gar nicht so gewöhnt hier im Forum *gg

Zu der Frage, womit OpenSource Projekte ihr Geld verdienen können, die Antwort heisst Support und guter Service. Wenn ich mich nicht ganz irre gibt es eine weitere Version von MySQL die spiziell für Firmen ausgelegt ist. MySQL ist eigentlich von der struktur hier total überholt. Es gibt einige Alternativen, die aber noch in den Kinderschuhen stecken, darunter MariaDB[1] oder NoSQL[2]. MariaDB ist übrigens ein Fork von MySQL. Auf Oracle sind sehr viele sauer, da sie mit der Community nicht grade freundlich umgehen, siehe OpenOffice, daraus ist ja das LibreOffice entstanden. In der Zwischenzeit ist Oracle aber wieder zurückgerudert und versucht sich ein wenig mit der Community zu arangieren.
Unter Community sind die Leute gemeint, die aktiv an dem Projekt beteiligen wollen. Ein weiteres gutes beispiel für gute Communityarbeit ist übrigens Ubuntu. Die Community von Ubuntu ist wohl das kritischeres aber dazu sehr aktive Community überhaupt.

[1] http://de.wikipedia.org/wiki/MariaDB
[2] http://de.wikipedia.org/wiki/NoSQL

Sorry bin ein wenig abgeschweift *gg
NoSQL ist ein Konzept, um das Skalierungsproblem zu umgehen, indem man auf Relationen verzichtet. Entsprechende Produkte sind nur ein "Subset" der üblichen Funktionalität von Datenbanken, kein technischer Fortschritt in dem Sinn.

Tatsächlich sind viele wieder zurückgerudert, die NoSQL ausprobiert haben. Nur weil etwas ein Hype ist, ist es noch lange kein echter Fortschritt ;-)

Das Projekt MariaDB halte ich für eine tolle Sache :-)

Wenn es um ein professionelles Produkt geht, kommt meiner Ansicht nach zur Zeit nicht viel an Microsoft SQL Server heran.
Was mich interessieren würde. Der Robust des OSGrids müsste eigentlich mittlerweile am Rand der Kapazitäten angekommen sein. Weiß da jemand was?
Hallo Sarah ;D

WAs bedeutet für dich professionell ? Professonell das man eine Alpha Software wie OpenSim benutzt, aber unbedingt eine Firma wie Microsoft unterstützen will mit seinem Geld.
Da macht es doch eher Sinn ein Projekt wie wie MariaDB zu fördern, in dem man diese benutzt und so den Entwickler gleichzeitig Feedback gibt.

Dadurch wird diese Software auch in gewissen Sinn professinell oder ?
Naja, wenn dir der leichtfertig verwendete Begriff (von mir in dem Sinne verwendet, dass es sich um ein durch und durch kommerzielles Produkt handelt) professionell stört, dann streiche die Eigenschaft einfach aus dem Satz. Er hat auch dann noch bestand ;-)

Spätestens wenn du mit OLAP-Cubes anfängst, kommt da kein freies Produkt mehr mit, und freie Produkte kranken stets am Userinterface, oft auch in den Archtekturen (gezwungener weise, durch die inkrementelle Entwicklungsform). PHP ist wirklich eine Katastrophe, schlimmer ist fast nur noch LSL ;-) Und hast du schon mal einen echten Schop mit einem oSCommerce aufgebaut?
Da fällt mir noch was ein: Ich habe nicht gefragt, wie man mit freier Software Geld verdienen kann, ich habe gefragt, wie Sun Geld verdient hat. Im Beratungsgeschäft sind die nicht tätig. Früher haben sie mal ein beliebtes Serverbetriebssystem gehabt, aber irgendwann schien das Geschäftsmodell nur noch darin zu bestehen, sehr viel Geld in die kostenlose Frameworkentwicklung (Java, Netbeans, Tomcat usw...) zu stecken und danach darin, Software "freizukaufen", wie es z.B. mit Staroffice lief, dass sie in Deutschland einkauften und OpenSource machten.
Seiten: 1 2