-
Notifications
You must be signed in to change notification settings - Fork 51
[Drivers] ACID transaction description #143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,12 @@ | ||||||||
| ACID transactions guarantee atomicity, consistency, isolation, and durability so | ||||||||
| that database operations are executed safely, even when failures occur. ACID | ||||||||
| transactions are required in some industries where errors or partial updates | ||||||||
| could lead to serious financial, legal, or safety consequences. | ||||||||
|
|
||||||||
| By default, operations on single documents conform to ACID standards. For | ||||||||
| operations on multiple documents or collections, MongoDB supports multi-document | ||||||||
| ACID transactions using sessions. These transactions use the snapshot isolation | ||||||||
| level so applications see a consistent set of data while the transaction is | ||||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is a nit, but a small suggestion to possibly better explain what we mean by "snapshot isolation".
Suggested change
|
||||||||
| running and write concerns to ensure changes are safely saved. With these | ||||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Re "write concerns to ensure changes are safely saved.", I'm not totally sure I understand what this means. Maybe something like: "changes to data are committed safely" ? |
||||||||
| features, MongoDB provides ACID guarantees that are comparable to those found in | ||||||||
| traditional relational databases. | ||||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. How important is this last sentence? I'm a little concerned that it could potentially read like we are "comparable", but maybe not as a good. But if this is a requirement from product or similar, I'm fine leaving. |
||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
who is the intended reader here? for readers who are technical, "conform to ACID standards" may be a bit too vague of a statement here.
Consistency - MongoDB offers causal consistency using sessions
Isolation - Any insert/update/delete of a single document is atomic and fully isolated; other clients never see a partial update to a document. MongoDB’s multi-document transaction protocol is designed to provide snapshot isolation: a transaction reads from a stable snapshot taken at (or just before) the transaction start, and other clients cannot see its in-progress writes.
Durability - as long as you have write concern: majority, your writes are durable though node failures.
It depends on how technical the reader is, but I would er on the side of including some of the nuance above.