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

Spójność odczytu własnego zapisu w Mongodb

Jest kilka punktów dotyczących tego pytania.

  1. Nie masz gwarancji spójności odczytu po zapisie, chyba że używasz "safe=true" , "w=1" (lub wyższy) lub "j=true" z twoim pisaniem. Możesz dołączyć je jako część insert() lub update() poleceń lub użyj set_lasterror_options() aby ustawić te opcje dla połączenia, bazy danych lub kolekcji, której używasz.

  2. Jeśli zezwalasz na odczyty z węzłów drugorzędnych (np. ReadPreference innej niż PRIMARY), nie otrzymasz semantyki odczytu po zapisie, a jedynie ostateczną spójność.

  3. Jeśli używasz ReadPreference z PRIMARY i ustawiasz odpowiednie opcje lasterror, masz gwarancję uzyskania semantyki odczytu po zapisie dla wszystkich operacji, które używają tego samego gniazda, czyli tego samego wątku.

  4. Jeśli używasz wielu wątków i NIE czytasz z węzłów pomocniczych, masz gwarancję uzyskania spójności odczytu po zapisie, o ile wydajesz odczyt w drugim wątku po zakończeniu zapisu w pierwszym wątku. Aby to zapewnić, możesz użyć standardowych prymitywów synchronizacji wątków.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Węzeł nie łączy się z Mongo więcej niż raz

  2. Jak naprawić zbyt wiele błędów otwartych plików podczas agregacji miliardów rekordów?

  3. mangusta - metoda „zapisz” nie istnieje

  4. Czy mongoDB ma problemy z ponownym połączeniem, czy robię to źle?

  5. Błąd połączenia NodeJS z mongoDB