ice-breaker
Commodore
- Registriert
- Nov. 2008
- Beiträge
- 4.132
Auch MemSQL muss, um komplett ACID-compliant zu sein, genausoviel auf die Festplatte schreiben, wie ein normales InnoDB mit Bufferpoool > Dataset. Denn die Änderung muss vor beenden der Transaktion im Log persistent auf der Festplatte liegen. Da hilft auch kein magisches "wir sind eine In-Memory Datenbank".
Das sind Grundsätze der Implementierung von ACID, die nicht gebrochen werden können. MemSQL kann nur ACID lascher implementieren, dass nur alle Sekunde die Änderungen auf die Festplatte geflusht werden, und bis dahin nur im Ram sind (Serverausfall: max. 1 Sekunde Daten weg). Aber oh wunder, das ganze kennt auch schon InnoDB innodb-flush-log-at-trx-commit=2.
MemSQL ist genauso ein Wolkengebilde, wie die meisten NoSQL-Datenbank, nur deutlich besser getarnt. Reads werden nicht wirklich schneller, da auch ein InnoDB alles im Ram halten kann und die Schreibperformance kann man auch nur verbessern, wenn man ACID lascher implementiert, womit wir bei einem sekündlichen Flush sind oder uns noch weiter in Richtung der NoSQL-Datenbanken mit deutlich weniger Garantien bewegen.
Mal eine wirklich schöne kritische Meinung über die Benchmarks der MemSQL-Entwickler (!!), warum es in deren Tests schneller als MySQL ist. Und wie man genausogut das Gegenteil beweisen kann.
tl;dr: Man vergleicht eine standardmäßig optimierte MemSQL-Konfiguration gegen eine Standardkonfiguration von MySQL, die eben nur 128Mb Ram nutzt, kein Wunder, wenn MySQL dann lahm ist.
Das sind Grundsätze der Implementierung von ACID, die nicht gebrochen werden können. MemSQL kann nur ACID lascher implementieren, dass nur alle Sekunde die Änderungen auf die Festplatte geflusht werden, und bis dahin nur im Ram sind (Serverausfall: max. 1 Sekunde Daten weg). Aber oh wunder, das ganze kennt auch schon InnoDB innodb-flush-log-at-trx-commit=2.
MemSQL ist genauso ein Wolkengebilde, wie die meisten NoSQL-Datenbank, nur deutlich besser getarnt. Reads werden nicht wirklich schneller, da auch ein InnoDB alles im Ram halten kann und die Schreibperformance kann man auch nur verbessern, wenn man ACID lascher implementiert, womit wir bei einem sekündlichen Flush sind oder uns noch weiter in Richtung der NoSQL-Datenbanken mit deutlich weniger Garantien bewegen.
Mal eine wirklich schöne kritische Meinung über die Benchmarks der MemSQL-Entwickler (!!), warum es in deren Tests schneller als MySQL ist. Und wie man genausogut das Gegenteil beweisen kann.
tl;dr: Man vergleicht eine standardmäßig optimierte MemSQL-Konfiguration gegen eine Standardkonfiguration von MySQL, die eben nur 128Mb Ram nutzt, kein Wunder, wenn MySQL dann lahm ist.