sql >> Database >  >> NoSQL >> MongoDB

Hoe veilig is de veilige modus van MongoDB op inserts?

Uw beste gok is om Write Concerns te gebruiken - hiermee kunt u MongoDB vertellen hoe belangrijk een stuk gegevens is. De snelste Write Concern is ook de minst veilige - de gegevens worden niet naar de schijf gespoeld tot de volgende geplande flush. De veiligste zal bevestigen dat de gegevens op een aantal machines naar de schijf zijn geschreven voordat ze terugkeren.

Het schrijfprobleem dat u zoekt is FSYNC_SAFE (althans zo wordt het genoemd vanuit het oogpunt van de Java-stuurprogramma ) of REPLICAS_SAFE die bevestigt dat uw gegevens zijn gerepliceerd.

Houd er rekening mee dat MongoDB geen transacties in de traditionele zin heeft - uw rollback moet met de hand worden uitgevoerd, omdat u de Mongo-database niet kunt vertellen dit voor u te doen.

Het andere dat u moet doen, is ofwel het relatief nieuwe --journal . gebruiken optie (die gebruikmaakt van een Write Ahead Log), of gebruik replicasets om uw gegevens over meerdere machines te delen om de gegevensintegriteit te maximaliseren in het geval van een crash/stroomuitval.

Sharding is niet zozeer een bescherming tegen hardwarestoringen als wel een methode om de belasting te delen bij bijzonder grote datasets - sharding moet niet worden verward met replicasets, wat een manier is om gegevens naar meer dan één schijf op meer dan één machine te schrijven .

Daarom moet u, als uw gegevens waardevol genoeg zijn, zeker replicasets gebruiken, misschien zelfs slaves in andere datacenters/beschikbaarheidszones/racks/etc. plaatsen om de veerkracht te bieden die u nodig heeft.

Er is/zal zijn (kan me niet herinneren of dit al is geïmplementeerd) een manier om de prioriteit van individuele knooppunten in een replicaset te specificeren, zodat als de master uitvalt, de nieuwe master die wordt gekozen er een is in dezelfde gegevens centrum als zo'n machine beschikbaar is (dwz om te voorkomen dat een slaaf aan de andere kant van het land meester wordt, tenzij dit echt de enige andere optie is).



  1. Wat zijn de voor- en nadelen van DynamoDB met betrekking tot andere NoSQL-databases?

  2. Hoe dump ik een volledige MongoDB-database als tekst/json?

  3. PyMongo en toArray() methode

  4. Query met behulp van datumbereik in MongoDB in Java