Ist die nosql-Datenbank gut für Online-Geld-Transaktion-management
Ich bin Planung zu verwenden-nosql-Datenbank als back-end für meine Web-Produkt. Ich habe ein paar sehr grundlegende Zweifel.
1) ich habe gelesen, in einem blog, dass die Nosql-Datenbank-sind nicht so gut für Online-Geld-Transaktion, d.h. wo die Integrität der Daten ist von höchster Bedeutung.(Mein Produkt hat Online Geld-Transaktionen)
2) wird Es um das tägliche minimum 1000 Benutzer.
3)Wird die Verfügbarkeit ein problem sein ?
Können Sie bitte angeben, keine weitere vor-und Nachteile bezogen auf Nosql-Datenbank.Ich bin der Planung bis zur Nutzung MongoDb. Können Sie diese erfüllen meine oben genannten Fragen.
Meine Frage ist klar, oder muss ich zu geben, mehr info?
Bitte Kommentar, und ich werde die notwendigen änderungen vornehmen.
- Es wird dringend empfohlen, um Transaktionen in solchen Systemen. Sie emulieren kann Transaktionen mit nosql-aber Sie erfinden das Rad.
- du bitte erläutern Sie Ihren Standpunkt, ich bin nicht in der Lage zu verstehen, was genau Sie zu sagen haben.
- die meisten problem ist die Parallelität. Wenn Sie möchten, zum Beispiel substruct Geld, als Sie nicht nur 1) überprüfen Sie den verfügbaren Betrag 2) substruct wenn user Geld haben. Sie müssen Schloss-Benutzer-Konto aus, ändert sich zunächst mit dem speziellen flag und dann Operationen. Mit SQL-Datenbanken Sie haben die standard-Möglichkeiten, dies zu tun.
- ist es mehr, klar?
- Es hängt davon ab, was Sie tun möchten. MongoDB unterstützt Atomare Operationen, aber wenn Ihr das update kann nicht durchgeführt werden bei einer operation kann es zu einem problem werden. Es ist nicht im Zusammenhang mit Geldangelegenheiten, es ist eher das Konzept von mongoDB. mongodb.org/display/DOCS/...
- was ist der Grund, Sie wollen eine NoSQL-Datenbank für das backend? Nur, um es zu lernen? Weil es kalt ist? Oder gibt es einen tatsächlichen nutzen? Aber selbst wenn Sie gehen, nehmen Sie einen Blick auf etwas zuverlässiger als MongoDB ( z.B. Riak ). /litius
- Gründe dafür sind 1)planen Wir zu expandieren. Und wollen nicht, dass die Datenbank eine Einschränkung. 2)Von dem, was ich gelesen habe, in keinem sqldatabase wir haben nicht zu denken, das schema, eine Menge. 3)Die Wartung für die nosql-Datenbank ist sehr weniger. 4)Wir konsultiert haben ein paar startups, die bereits mit, Sie habe keine wichtigen Fragen, die-off vor kurzem.(Ich wollte mehr Globale opnion zu diesem Thema,also hier die Frage) 5) Und ja, es ist sehr cool 😀 ... Danke für dein Vorschlag ich werde sicherlich Blick auf Riak 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
NoSQL-Datenbanken gibt es zu lösen mehrere Dinge, vor allem:
(buzz) BigData => denke, TB, PB, usw..
Arbeiten mit Verteilte Systeme /datasets => sagen Sie, Sie haben sich 42 Produkte, so dass 13 von Ihnen Leben in Chicago datacenter, 21 in New York und anderen und 8 irgendwo in Japan, aber sobald Sie die Abfrage für alle 42 Produkte, würden Sie nicht brauchen, zu wissen, wo Sie sich befinden: NoSQL-DB. Dies ermöglicht auch zu engagieren viel mehr Gehirn-power ( Server ) zu lösen, hart rechnerische Probleme [ nicht scheinen, es würde Ihr passen, use-case, aber es ist eine interessante Sache zu beachten ]
Partitionierung => nachdem Sie Ihre DB einfach verteilt, außer den coolen 8 Produkte in Japan, ermöglicht auch eine einfache Daten-Replikation, so dass diese 42 Produkte, die repliziert werden mit einem Faktor von 3, zum Beispiel, das würde bedeuten, dass Sie DB würde haben 3 Kopien für jeder Produkt. Daher, wenn etwas down geht, kein problem => hier ist ein Replikat verfügbar. Dies ist, wo NoSQL-Datenbanken tatsächlich shine vs. RDBMS. Gewährt, können Sie Splitter -, partitions-und cluster-Oracle /MySQL /PostgreSQL /etc.. ABER es ist ein mehrere Größenordnungen komplizierter Prozess, und in der Regel eine Wartung Kopfschmerzen für die meisten Menschen, Sie würden beschäftigen.
(auf Ihre Fragen)
Wird es um das tägliche minimum 1000 Benutzer
1000 Nutzern täglich ist eine extrem niedrige Lautstärke, es sei denn, Sie wählen eine NoSQL-Lösung, die geschrieben wurde gestern um 3 Uhr morgens als Beweis Konzept, sollte es kein Problem hier. Aber wenn Sie erfolgreich sind, und haben 100.000.000 Anwender in ein paar Monaten, NoSQL wäre einfacher zu skalieren.
Wird die Verfügbarkeit ein problem sein ?
Solide NoSQL-Lösungen ermöglichen es Ihnen, geben Sie etwas, das als
quorum
: "Die Menge der Replikate, die Sie beantworten müssen, um einen lese-oder schreib-Anforderung, bevor Sie als erfolgreich betrachtet werden". Einige Lösungen auch tun, sowas nennt manhinted handoff
: "benachbarten Knoten vorübergehend übernehmen, Lagerhaltung für den ausgefallenen Knoten". Im Allgemeinen sollten Sie in der Lage sein, um die Steuerung der Verfügbarkeit, je nach Ihren Anforderungen.(aus Ihren Kommentaren)
Expanding
ist ein sehr relativer Begriff. "Die Finanz-Industrie ist ziemlich erweitert", und Sie noch verwenden meist das RDBMS für den Tag zu Tag Operationen. Facebook nutzt MySQL. Großen Banken, die ich Tat Arbeit für, Oracle /MySQL /PostgreSQL /DB2 /etc.. und nur einige von Ihnen die Verwendung von NoSQL -, NICHT aber für Daten, die erfordert, dass 100% Konsistenz die ganze Zeit. Auch Facebook nutzt Cassandra nur für Dinge wie "Posteingang durchsuchen". Aber wenn durch erweitern Sie bedeuten mehr Daten, mehr Benutzer ( Anfragen, verbindungen, etc.. ), NoSQL wird viel einfacher zu skalieren. Wieder, es bedeutet nicht, dass Sie nicht skalieren RDBMS, es ist nur mehr mühsam/kompliziert.In meiner Erfahrung, wenn ich ein system bauen, das eine gut ist, ich IMMER zu denken haben, das schema. NoSQL-Datenbanken ermöglichen es Ihnen, um ein bisschen mehr flexible mit den Daten, die Sie beibehalten, aber es bedeutet nicht, sollten Sie sich Gedanken über das schema, nicht weniger. Denke der Indizierung der Daten zum Beispiel, oder Splitter, die es über mehrere Cluster, oder sogar Aufträge/Schnittstellen, die Sie verfügbar machen können, um Kunden, etc..
Ich würde nicht sagen, das ist wahr im Allgemeinen, es sei denn, wir sind reden über BigData. Nehmen PostgreSQL zum Beispiel. Es ist ein extrem genial Stück software, das ist ganz einfach zu arbeiten mit und zu pflegen. Ein weiteres plus bei der RDBMS-Welt => Menschen fühlen sich VIEL mehr Komfort mit SQL. Aus diesem Grund, zum Beispiel, Cassandra Jungs, veröffentlicht
CQL
in 0,8, was eine sehr begrenzte Teilmenge der SQL. Begriffe wiemaintenance
auch sollten Schulter an Schulter stehen mit Begriffen wieTalent
,Knowledge
,Expertise
. Denn wenn Sie die Cassandra, zum Beispiel, das Mädchen ist eine sehr "hohe Wartung", aber nicht für die Jungs von DataStax, die habenExpertise
, aber Sie müssten dafür bezahlen.Ihre Wichtigste Frage
Ohne wirklich zu wissen, was Ihr Produkt ist, es ist schwer zu sagen, ob eine NoSQL-Datenbank würde /würde nicht gut passen. Wenn das primäre Ziel, das Produkt "Online-Geld-Transaktion", dann würde ich vorschlagen gegen NoSQL-Datenbank ( zumindest heute im Jahr 2011 ). Wenn "Online-Geld-Transaktion" ist nur eine der Anforderungen, aber nicht "der Kern" Ihres Produktes, je nachdem, was der "Kern" ist, können Sie definitiv geben NoSQL-Datenbank zu versuchen, und zum Beispiel die Nutzung einer externen Dienstleistung zu verarbeiten (z.B. Google Checkout, etc..), die Ihre Transaktionen mit einem garantierten Konsistenz.
Als technischer Hinweis, wenn das problem Sie versuchen zu lösen, profitiert von wird gelöst mit der Verteilung, würde ich empfehlen, Datenbanken, geschrieben in Erlang ( z.B. Riak, CouchDB, etc. ), da Erlang als eine Sprache, die löst schon erfolgreich die meisten der verteilten Dinge seit Jahrzehnten.
MarkLogic ist eine NoSQL-Datenbank mit ACID-Transaktionen, die verwendet wird, um zu verwalten, virtuelle Währung in spielen wie auch real-life-banking-trades.