2010-03-14 4 views
8

Was ist die schnellste und stabilste Nicht-SQL-Datenbank für die Speicherung von Big Data und die Verarbeitung von tausenden Anfragen während des Tages (für den Traffic Exchange Service)? Ich habe Kdb + und Berkeley DB gefunden. Sind sie gut? Gibt es andere Möglichkeiten?Schnellste und stabilste Nicht-SQL-Datenbank?

Details ...

Jeden Tag Serverprozesse> 100K Besuche. Für jeden Besuch muss ich entsprechende Statistiken aus der DB lesen, Log in DB schreiben und Statistiken in DB aktualisieren, auch bekannt als 3 Operationen mit DB pro Besuch. Der Verkehr steigt kontinuierlich. Daher sollte der DB-Motor schnell sein. Von einer Seite wird DB von Dämonen verwaltet, die auf C, Erlang oder einer anderen Sprache auf niedrigerer Ebene geschrieben sind. Von einer anderen Seite wird DB von PHP-Skripten verwaltet.

+0

"Sind sie gut?"Berkley DB gibt es schon seit Jahrzehnten. Was müssen Sie noch wissen?" Gibt es noch andere Optionen? "Immer. Aber da Sie nicht viel Hintergrundwissen oder Anleitung bieten, ist es schwierig, einen konkreten Vorschlag zu machen. –

+0

Wenn Sie Verweisen Sie auf eine "nicht-SQL-Datenbank. Sind Sie besorgt über eine" Service-basierte "SQL-Engine? vs eine Drop-in-DLL wie andere über SQLite erwähnt (und auch Sybase Vorteil LOCAL Server). Für Anfragen gegen" Verkehr ", Sie beschreiben "BIG" -Daten, und das ist alles relativ basierend auf Datennormalisierung auch. – DRapp

+1

Tausende von Anfragen pro Tag? ernsthaft, Menschen verwenden SQL-Datenbanken, um Tausende von Anfragen pro Sekunde, und mit komplexen Abfragen bei diesem. Dies riecht nach vorzeitigen Optimierung – intgr

Antwort

0

Berkely DB ist erprobt und gehärtet und steht im Mittelpunkt vieler Mega-High-Transaktionsvolumensysteme. Ein Beispiel ist die Mobilfunkanbieter-Infrastruktur, die riesige LDAP-Speicher (zum Beispiel OpenWave) verwendet, um mehr als 2 Milliarden Transaktionen pro Tag zu verarbeiten. Diese Systeme haben normalerweise auch etwas wie Oracle in der Mischung für die Wiederherstellung nach Zeitpunkt, aber sie verwenden Berkeley DB als replizierte Caches.

Außerdem ist BDB nicht auf Schlüsselwertpaare im einfachen Sinne der Skalarwerte beschränkt. Sie können beliebige Werte in dem Wert speichern, einschließlich beliebiger Strukturen/Datensätze.

4

Das Dateisystem selbst ist schneller und stabiler als fast alles andere. Es speichert große Daten nahtlos und effizient. Die API ist sehr einfach.

Sie können sehr, sehr effizient aus dem Dateisystem speichern und abrufen.

Da Ihre Frage zu "Anforderungen" etwas dünn ist, ist es schwer, mehr zu sagen.

0

Was ist los mit SqlLite? Da Sie explizit non-sql angegeben haben, basiert Berkeley DB auf Schlüssel/Wert-Paaren, die für Ihre Anforderungen möglicherweise nicht ausreichen, wenn Sie die Datasets erweitern möchten, und noch mehr, wie würden Sie das Dataset über Schlüssel/Wert-Paare ....

Auf der anderen Seite, Kdb +, mit Blick auf die FAQ auf ihrer Website ist eine relationale Datenbank, die SQL über ihre Programmiersprache Q behandeln kann ... beachten, wenn die Notwendigkeit der Migration erscheint, es könnte potentielle Probleme geben, wie zum Beispiel inkompatible Dialekte oder eine Abfrage, die Herstellerspezifika verwendet, daher das Potenzial, in diese Datenbank gesperrt zu werden und überhaupt nicht migrieren zu können ... etwas, das man für später beachten sollte ...

Sie müssen vorsichtig sein, was Sie hier entscheiden und schauen a t es aus einer langfristigen Perspektive, zukünftige Upgrades, Migration zu einer anderen Datenbank, wie einfach wäre es zu Skala, etc.

+1

Sie würden Datasets miteinander in Beziehung setzen, indem Sie mehr als einen einfachen Skalar im Wertefeld speichern. Berkely ist es egal, was Sie speichern, es behandelt es als Blob von Bytes. – codenheim

0

Ein offensichtlicher Eintrag in dieser Kategorie ist Intersystems Caché. (Nun, offensichtlich für mich ...) Seien Sie sich bewusst, aber es ist nicht billig. (Aber ich denke nicht, dass auch Kdb + ist.)

0

Was ist mit Redis?

http://code.google.com/p/redis/

Haben versuchen es noch nicht darüber las und es scheint Lagerung eine schnelle und stabil genug für Daten. Es bietet Ihnen auch eine anständige Anti-Single-Point-Failure-Lösung, soweit ich verstehe.