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

Jak bezpieczny jest tryb bezpieczny MongoDB na wstawkach?

Najlepszym rozwiązaniem jest skorzystanie z funkcji Write Concerns - pozwalają one powiedzieć MongoDB, jak ważna jest dana część. Najszybszy problem związany z zapisem jest również najmniej bezpieczny — dane nie są opróżniane na dysk aż do następnego zaplanowanego opróżnienia. Najbezpieczniejszy potwierdzi, że dane zostały zapisane na dysku na wielu komputerach przed powrotem.

Problem dotyczący pisania, którego szukasz, to FSYNC_SAFE (przynajmniej tak się to nazywa z punktu widzenia Sterownik Java ) lub REPLICAS_SAFE, który potwierdza, że ​​Twoje dane zostały zreplikowane.

Pamiętaj, że MongoDB nie obsługuje transakcji w tradycyjnym tego słowa znaczeniu – wycofanie będzie musiało zostać wycofane ręcznie, ponieważ nie możesz powiedzieć bazie danych Mongo, aby zrobiła to za Ciebie.

Inną rzeczą, którą musisz zrobić, to użyć stosunkowo nowego --journal opcja (która korzysta z dziennika zapisu z wyprzedzeniem) lub użyj zestawów replik do udostępniania danych na wielu maszynach, aby zmaksymalizować integralność danych w przypadku awarii/utraty zasilania.

Sharding to nie tyle ochrona przed awarią sprzętu, co metoda dzielenia obciążenia w przypadku szczególnie dużych zbiorów danych - shardingu nie należy mylić z zestawami replik, które są sposobem zapisywania danych na więcej niż jednym dysku na więcej niż jednej maszynie .

Dlatego, jeśli Twoje dane są wystarczająco cenne, zdecydowanie powinieneś używać zestawów replik, być może nawet umieszczać urządzenia podrzędne w innych centrach danych/strefach dostępności/stojakach/itd., aby zapewnić wymaganą odporność.

Jest/będzie (nie pamiętam, czy to już zostało zaimplementowane) sposób na określenie priorytetu poszczególnych węzłów w zestawie replik tak, że jeśli master zejdzie, nowy wybrany master będzie jednym z tych samych danych wyśrodkować, jeśli taka maszyna jest dostępna (tj. powstrzymać niewolnika po drugiej stronie kraju przed staniem się panem, chyba że jest to naprawdę jedyna inna opcja).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Co to jest operator $unwind w MongoDB?

  2. Mongoose __v kiedy to się zmienia

  3. Przechowywanie małych (poniżej 1 MB) plików za pomocą MongoDB w NodeJS BEZ GridFS

  4. Wstaw do silnie zagnieżdżonego dokumentu MongoDB

  5. MongoDB nie może się uruchomić - ***przerywam po niepowodzeniu fassert()