Feed abonnieren Neuste Beiträge
31
Okt
0

No-SQL-Shootout: Terrastore

Geschrieben von SEARCHTEQ IT
SEARCHTEQ IT
Das IT-Team der SEARCHTEQ GmbH.
Benutzer ist offline
in Deutsch

Nachdem wir im vorigen Artikel den Testablauf vorgestellt haben, hier nun wie versprochen die Details zu den einzelnen Kandidaten.

Terrastore (http://code.google.com/p/terrastore/) ist eine verteilte Key-Value-Datenbank, die auf Terracotta basiert. Die Records, etwa serialisierte Java-Objekte aber auch JSON-Strings, legt Terrastore in einer hierarchischen Struktur bucket/key ab, so dass sich Terrastore vereinfacht als Funktion String x String -> Record interpretieren lässt. Ein Bucket entspricht in etwa einer Tabelle in einer SQL-Datenbank. Buckets können nicht verschachtelt werden und sind relativ schwergewichtige Objekte - einige hundert Buckets stellen das System vor kein großes Problem. Eine Größenordnung darüber ist aber nicht mehr realisierbar (OutOfMemory-Exceptions).

29
Sep
2

Das NoSQL-Shootout bei SEARCHTEQ

Geschrieben von SEARCHTEQ IT
SEARCHTEQ IT
Das IT-Team der SEARCHTEQ GmbH.
Benutzer ist offline
in Deutsch

Zum Thema Datenbanken finden sich im Netz allerhand Reviews, Vergleiche und Tests. Bei genauerer Betrachtung wird schnell klar, dass den Tests (fast) immer eine recht kleine Datenbasis zugrundeliegt. Dadurch sind diese Bewertungen nicht immer für große Produktivsysteme repräsentativ.

Die Datenbank-Hersteller wiederum präsentieren auf ihren Seiten sehr gerne für den Produktivbetrieb nicht verwertbare Benchmarks. Auch diese Zahlen sollte man nur mit großer Vorsicht genießen und auf keinen Fall dazu benutzen, die Geschwindigkeit der Lösungen miteinander zu vergleichen. Oft ist bei diesen Benchmarks die Last unterschiedlich, die Systeme sind mal verteilt, mal unverteilt. Mal werden die verschiedenen Datenbankenoperationen mit einem Thread, ein anderes Mal mit mehreren Threads durchgeführt. Letzteres gilt zum Teil auch für unsere Benchmark-Zahlen, so dass man mit diesen keine Aussage darüber treffen kann, welche Lösung die schnellste ist.

Im Fall unserer Suchmaschine www.suchen.de wurde schnell klar, dass eigene Vergleiche notwendig sind, um das Abschneiden der Datenbanken besser bewerten zu können.

Die Crux an relationalen Datenbanken ist das feste Schema, dem man unterworfen ist: Eine Tabelle besteht in der Regel aus mehreren Spalten. Nicht jede Spalte einer Zeile enthält unbedingt einen Eintrag. In diesem Fall schreibt die Datenbank hier NULL oder einem vordefinierten Wert. Bei uns trat das sehr oft, eigentlich immer auf. Auf der Suche nach einer "besseren" Datenbank stießen wir sehr schnell auf NoSQL-Datenbanken verschiedener Anbiet, die nicht das Problem der "gewöhnlichen" SQL-Datenbanken haben. Unsere Kandidaten kommen mit verschiedenen Features daher und wir standen daher vor der Wahl, die für unsere Anwendung beste Implementierung auszusuchen.