Ist es möglich, Multi-Version Concurrency Control (MVCC) zusätzlich zu MongoDB zu implementieren?

7

MongoDB ist für mich eine großartige Datenbank. Es gibt jedoch Fälle, in denen ich atomare Multi-Dokument-Transaktionen wirklich brauche. Zum Beispiel um Dinge (wie Geld oder Reputation) zwischen Konten zu transferieren und dies muss entweder erfolgreich sein oder komplett fehlschlagen.

Ich frage mich, ob es möglich wäre, mit MongoDB über eine Bibliothek zu interagieren, die das MultiVersion Concurrency Control-Muster implementiert.

Wie schlimm wäre es bei Auftritten? Wäre es möglich und profitabel, einen hybriden Ansatz zu verwenden, bei dem die 'mongo-mvcc'-Bibliothek nur bei Bedarf und die traditionelle db-Verbindung verwendet wird, wenn nur an einem einzigen Dokument gearbeitet wird, oder würde das den mvcc-Kram brechen?

    
ascobol 12.05.2011, 21:46
quelle

5 Antworten

7

Am einfachsten ist die Verwendung von Sperren (zweiphasiges Commit), obwohl dies in einigen Fällen nicht sehr effizient ist. Für höhere Parallelität kann eine Art von MVCC auf der Oberseite von Mongo implementiert werden. Dieser Artikel enthält eine gute Beschreibung:

Ссылка

    
user1128016 07.01.2012, 16:20
quelle
5

Money-Transaktion kann über zweiphasiges Commit implementiert werden: Ссылка

    
fun_vit 04.07.2011 20:23
quelle
5

Es gibt eine Implementierung von MVCC auf MongoDB, die jetzt auf GitHub verfügbar ist:

Ссылка

    
Thorsten Reitz 29.03.2012 11:06
quelle
2

MongoDB ist nicht wirklich dafür ausgelegt, mit Transaktionen zu arbeiten. Es gibt eine wirklich gute Diskussion darüber, wie Sie das umsetzen können: Ссылка

    
Leonard Garvey 13.05.2011 12:18
quelle
0

Nun, wenn Sie echte TRANSACTIONS benötigen, verwenden Sie RDBMS, die entwickelt wurden, um sie zu unterstützen :) NoSQLs sind schneller und skalierbarer, hauptsächlich weil sie Transaktionen nicht unterstützen.

Wenn Sie beide benötigen, ist es vielleicht eine gute Idee, Transaktions-Layer zur Unterstützung von Transaktionen und NoSQL-Layer für andere Zwecke zu haben? In einigen Fällen sollte es nicht schwierig sein, ein hybrides System zu erstellen, das zum Beispiel MongoDB und PostgreSQL verwendet

    
Daimon 04.07.2011 21:04
quelle

Tags und Links