sql >> Database teknologi >  >> NoSQL >> MongoDB

Tofaset commit i MongoDB

Når applikationen eller databasen pludselig går ned mellem at anvende transaktionen til A og anvende transaktionen til B, vil der stadig være en transaktion med state:"pending" i den globale transaktionsindsamling. Dit gendannelsesscript, som du kører efter et nedbrud, skulle bemærke dette, tjekke de to konti og se, at der er en afventende transaktion på den ene, men ikke den anden konto. Den ved nu alt, hvad den behøver at vide for enten at rulle transaktionen tilbage eller forsøge at fuldføre den.

Ja, det er ikke nemt at skrive et gendannelsesscript, som er så smart. Men transaktioner i et databasesystem, der ikke er designet til dem, er altid svært. Nogle gange kan du omgås at kræve transaktioner i MongoDB ved at designe dine dokumenter på en måde, så felter, der skal opdateres sammen, altid er i det samme dokument, men der er ikke altid en fornuftig måde at gøre dette på. Når din use-case absolut har brug for transaktioner, beskyt din fornuft og brug en relationel database.



  1. MongoDB $stdDevSamp

  2. Nodejs - websocket-node modul:Hvordan får man multi-client socket-server til at fungere?

  3. ude af stand til at køre en mongoDb-beholder i docker til Windows ved hjælp af linux-filsystemet

  4. Hvordan kan jeg bruge en cursor.forEach() i MongoDB ved hjælp af Node.js?