MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Zatwierdzanie dwufazowe w MongoDB

Gdy aplikacja lub baza danych nagle ulegnie awarii między zastosowaniem transakcji do A i do B, nadal będzie transakcja z state:"pending" w globalnej kolekcji transakcji. Twój skrypt odzyskiwania, który uruchamiasz po awarii, powinien to zauważyć, sprawdzić dwa konta i zobaczyć, że istnieje oczekująca transakcja na jednym, ale nie na drugim koncie. Teraz wie wszystko, co musi wiedzieć, aby wycofać transakcję lub spróbować ją dokończyć.

Tak, napisanie tak inteligentnego skryptu odzyskiwania nie jest łatwe. Jednak transakcje w systemie baz danych, który nie jest dla nich przeznaczony, są zawsze trudne. Czasami można obejść wymaganie transakcji w MongoDB, projektując dokumenty w taki sposób, aby pola, które muszą być aktualizowane razem, zawsze znajdowały się w tym samym dokumencie, ale nie zawsze można to zrobić w rozsądny sposób. Kiedy Twój przypadek użycia absolutnie wymaga transakcji, chroń swoje zdrowie psychiczne i korzystaj z relacyjnej bazy danych.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB — głosowanie za komentarzami/głosowanie przeciw za pomocą potoku agregacji

  2. MongoDB $min

  3. Bardzo dziwny problem z Mongoose/MongoDB podczas uruchamiania strony MEAN na Openshift

  4. Błąd 504 podczas wstawiania do bazy danych mongo

  5. Znajdź ostatni rekord każdego dnia