Lohnt es sich, MonetDB zu versuchen?

8

Hat jemand Erfahrung mit MonetDB? Derzeit habe ich eine MySQL-Datenbank, die zu groß wird, und Abfragen werden zu langsam. Nach dem spaltenorientierten Paradigma werden Einfügungen langsamer sein (was mir überhaupt nichts ausmacht), aber die Datenwiederherstellung wird sehr schnell. Kann ich durch den Wechsel zu MonetDB eine höhere Datenwiederherstellungsleistung erzielen? Ist MonetDB reif genug?

    
martincho 15.09.2011, 17:48
quelle

2 Antworten

16

Sie haben eine Chance, die Leistung Ihrer Anwendung zu verbessern. Der Gewinn hängt jedoch stark von Ihrer Arbeitslast, der Größe Ihrer Datenbank und Ihrer Hardware ab. MonetDB wird unter zwei Hauptannahmen entwickelt / abgestimmt:

  1. Ihre Arbeitslast ist analytisch, d. h. Sie haben viele (gruppierte) Aggregationen und Ähnliches.
  2. Noch wichtiger: Ihr heißer Datensatz (die Daten, mit denen Sie tatsächlich arbeiten) passt in den Hauptspeicher Ihres Systems. MonetDB hat keinen eigenen Buffer Manager, sondern stützt sich auf das Betriebssystem, um Disk-I / O zu handhaben. Da das Betriebssystem (insbesondere Windows, aber auch Linux) manchmal sehr dumm ist, wenn es darum geht, Platten auszutauschen, kann das ein Problem werden (besonders bei Joins, die nicht genügend Speicher haben).
Was die Reife betrifft, gibt es wahrscheinlich mehr Meinungen darüber als Menschen, die diesen Planeten bewohnen. Ich persönlich finde es reif genug, aber ich bin ein Mitglied des Entwicklungsteams und daher voreingenommen. Aber MonetDB ist ein Forschungsprojekt. Wenn Sie also eine interessante Anwendung haben, würden wir gerne davon hören und sehen, ob wir Ihnen helfen können.

    
Holger 16.09.2011, 10:34
quelle
4

Die Antwort hängt natürlich von Ihrer Payload ab, aber meine bisherige Erfahrung scheint darauf hinzuweisen, dass in MonetDB alles schneller ist als in MySQL. Die Ausnahme wären Joins, die nicht nur langsam erscheinen, sondern beim Pipelining völlig unpassend erscheinen, so dass Sie am Ende Speicherkapazitäten benötigen, um große zu verarbeiten. Das heißt, meine Erfahrung mit Joins in MySQL war auch nicht gerade hervorragend, also vermute ich, dass Ihre Erwartungen gering sein mögen. Wenn Sie wirklich gute Join-Leistung wünschen, würde ich wahrscheinlich SQL Server oder dergleichen empfehlen; Für die anderen Fragen, die Sie in den folgenden Kommentaren erwähnen, sollte MonetDB großartig sein.

Beispielsweise konnte ich bei einer Tabelle mit etwa 2 Millionen Zeilen in einer Spalte (mit etwa 800.000 Zeilen im Bereich) und einer anderen Spalte sortieren und das begrenzte Ergebnis wurde verarbeitet und zurückgegeben 25ms. Die Leistung dieser Art von Abfragen scheint sich mit der Skalierung zu verschlechtern, aber das sollte Ihnen einen Vorgeschmack darauf geben, was Sie bei dieser Skalierung erwarten könnten.

Ich sollte darauf hinweisen, dass das Modell der optimistischen Gleichzeitigkeit diejenigen, die nur der pessimistischen Nebenläufigkeit (den meisten Menschen) ausgesetzt waren, abwerfen könnte. Ich würde es recherchieren, bevor ich mich wundere, warum einige Ihrer Commits unter gleichzeitiger Belastung fehlschlagen.

    
N8allan 02.06.2012 06:22
quelle