Nejlepším řešením je použít Write Concerns – ty vám umožní sdělit MongoDB, jak důležitá je část dat. Nejrychlejší Write Concern je také nejméně bezpečný – data nejsou vyprázdněna na disk až do dalšího plánovaného vyprázdnění. Nejbezpečnější potvrdí, že data byla zapsána na disk na řadě počítačů, než se vrátí.
Zájem o zápis, který hledáte, je FSYNC_SAFE (alespoň tak se tomu říká z pohledu ovladač Java ) nebo REPLICAS_SAFE, což potvrzuje, že vaše data byla replikována.
Mějte na paměti, že MongoDB nemá transakce v tradičním slova smyslu – vaše vrácení bude muset být vráceno ručně, protože nemůžete říci databázi Mongo, aby to udělala za vás.
Další věc, kterou musíte udělat, je buď použít relativně nový --journal
možnost (která používá protokol Write Ahead Log), nebo použijte sady replik ke sdílení vašich dat na mnoha počítačích, abyste maximalizovali integritu dat v případě havárie nebo ztráty napájení.
Sdílení není ani tak ochrana proti selhání hardwaru jako způsob sdílení zátěže při práci s obzvláště velkými datovými sadami - sharding by neměl být zaměňován se sadami replik, což je způsob zápisu dat na více než jeden disk na více než jednom počítači .
Proto, pokud jsou vaše data dostatečně cenná, měli byste určitě používat sady replik, možná dokonce umísťovat slave v jiných datových centrech/zónách dostupnosti/rackech/atd, abyste zajistili požadovanou odolnost.
Existuje/bude existovat (nepamatuji si, zda to již bylo implementováno) způsob, jak specifikovat prioritu jednotlivých uzlů v sadě replik tak, že pokud hlavní uzly sestoupí, nový hlavní, který je zvolen, je jeden ve stejných datech. centrum, pokud je takový stroj k dispozici (tj. zabránit otrokovi na druhé straně země, aby se stal pánem, pokud to skutečně není jediná jiná možnost).