Ist es möglich, die Transaktion, die Verarbeitung mit node.js und eine noSQL db?

Ich spreche nicht über echtes Geld Transaktionen

Dem Projekt an dem ich arbeite, ist ein Spiel, wo Spieler Handel Zeug zwischen einander. Es ist im Grunde eine Transaktion Prozess, Spieler A gibt Spieler B 10 Grütze im Austausch für dreißig Kühe, Sie bekommen die Idee.

Aber wie es ist interaktiv und es gibt viele Spieler auf einmal, in einer Chat-Umgebung wie alle trading zufällig fragte ich mich, ob es möglich war, solch ein Ding mit node.js aber ich sehe Probleme.

Ich komme aus einer DB im hintergrund, wo die Verarbeitung von Transaktionen und die Art der rollback und commit sind notwendig, um den DB-Zustand der Gesundheit. Aber wenn wir reden node.js plus mongoDB (oder jede andere noSQL-DB für diese Angelegenheit) , ist sicherlich eine ganz andere Mentalität, aber ich weiß einfach nicht, wie es verkraften könnte, einen Handel in dem Sinne, dass nur zwei Parteien beteiligt werden sollten, ohne Rückgriff auf irgendeine form von sperren, aber das ist wohl nicht das, was node ist.

Habe ich nicht gefunden, noch nichts, aber das wundert mich nicht, weil node.js so neu ist.

UPDATE ich bin mir bewusst, die Mechanismen einer Transaktion - und insbesondere banking-Stil-Transaktionen, aber das ist nicht das gleiche. Ich kann es noch nicht gemacht haben klar, aber das Problem ist, dass Spieler B ist etwas zu verkaufen, zu einer Gemeinschaft von Käufern.

Dass bedeutet, dass, obwohl Spieler A initiiert eine Kauf-Anleitung auf der client-Seite ist es auch möglich, dass in der gleichen Zeit, die Spieler C, D oder E auch Klicks kaufen die gleiche Kuh.

Nun in eine normale Transaktion wird erwartet, dass zumindest die erste person, der erhält ein Rekord-Niveau Tabelle Sperre mindestens Blöcke der anderen Parteien fortgesetzt werden, an diesem Punkt in der Zeit.

Jedoch die Art der Nutzung von Knoten und insbesondere seine Geschwindigkeit, gleichzeitige Verarbeitung und Nutzung der für die Anzeige von Echtzeit-updates der Datenbank bedeuten, ich könnte mir leicht vorstellen, dass die langsamste person (wir reden hier von Millisekunden) gewinnt.

Beispielsweise Spieler A initiiert den Kauf der gleichen Zeit wie Spieler C. Spieler Eine Transaktion abgeschlossen und die Grütze bezahlt werden, zu Spieler B, und die Kuh ist zugewiesen zu Player A auf die Datenbank. Eine Millisekunde später ist die Kuh zugeordnet zu Spieler C.

Ich hoffe das erklärt das Problem besser.

InformationsquelleAutor T9b | 2012-07-25

Schreibe einen Kommentar