MongoDB transactions?
Jouer avec MongoDB et la Norme dans .NET.
Chose qui me confond - il n'y a pas de transactions
(ne peut pas juste dire MongoConnection.Begin/EndTransaction
ou quelque chose comme ça).
Que je veux utiliser pour motif d'Unité de travail et d'annulation des modifications dans le cas où quelque chose échoue.
Est-il encore un moyen propre pour enrichir mon référentiel avec ITransaction?
Vous devez vous connecter pour publier un commentaire.
MongoDB ne prend pas en charge complexe multi-document de transactions. Si c'est quelque chose que vous avez absolument besoin, il n'est probablement pas un bon ajustement pour vous.
Dans la plupart des cas, cependant, nous avons constaté que les transactions complexes ne sont pas une exigence. Toutes les opérations dans MongoDB sont atomiques sur un seul document, et nous soutenons nice mise à jour des modificateurs, qui font beaucoup d'opérations qui auraient besoin d'une opération facile à mettre en œuvre (et rapide).
update modifiers
partie. Exactement comment peuvent-ils aider? (gardez à l'esprit que je suis débutant complet à ce sujet) 🙂C'est vrai que MongoDB ne prend pas en charge les transactions hors de la boîte, mais vous pouvez mettre en œuvre optimiste transactions sur votre propre. Ils ajustement très bien à l'unité de travail. J'ai écrit un exemple java et quelques explications sur un GitHub de sorte que vous pouvez facilement répéter en C#.
De v4.0, MongoDB supporte le multi-document de transactions ACID. Grâce à l'isolement d'instantané, les transactions fournir un uniforme à l'échelle mondiale de la vue de données, et d'appliquer les tout-ou-rien d'exécution afin de maintenir l'intégrité des données. Pour plus d'info, voir https://www.mongodb.com/transactions
En 4.2, MongoDB soutiendra aussi fragmenté transactions.
Dans ce post de blog, j'ai également un aperçu de notre voyage de multi-document de transactions ACID, dans le cas où si vous êtes intéressé par l'histoire et notre raisonnement.
MongoDB 4.0 va ajouter le support du multi-document de transactions.
https://www.mongodb.com/transactions
Quelques notes pour l'enregistrement.
Alors que MongoDB n'a pas l'appui de transaction, il prend en charge l'atomicité sur un seul document:
Aussi, le manuel de l'inscription sur "Isoler la Séquence des Opérations" pourrait être intéressant. E. g.:
Vous pouvez utiliser à la place MongoDb TokuMX.
http://www.tokutek.com/products/tokumx-for-mongodb/
FYI - ce qui a changé maintenant,
Oui, il y a plusieurs façons d'appliquer le motif d'Unité de Travail pour MongoDB en fonction de la version de base de données.
Jusqu'à ce que MongoDB 4.0, il n'y a pas de support pour le multi-document de transactions ACID. Puis, les développeurs ont utilisé le "two-phase commit protocole" (base de données unique) et "les trois phases de validation (protocole non bloquant sur des bases de données distribuées) de créer leur propre couche de transaction qui a fourni la cohérence des données mais pas tout-ou-rien d'exécution afin de maintenir l'intégrité des données. Ainsi, a pris en bas de la performance.
MongoDB 4.0 a ajouté le support pour le multi-document de transactions ACID.
Sources:
https://en.wikipedia.org/wiki/Two-phase_commit_protocol
https://en.wikipedia.org/wiki/Three-phase_commit_protocol
https://www.mongodb.com/transactions