Skip to content
Open
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions drivers/acid-transactions.rst
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
Copy link
Copy Markdown
Collaborator

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.

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
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The 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
ACID transactions using sessions. These transactions use the snapshot isolation
level so applications see a consistent set of data while the transaction is
ACID transactions using sessions. Sessions operate on data from a single point-in-time snapshot, so applications see a consistent set of data while the transaction is

running and write concerns to ensure changes are safely saved. With these
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The 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.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The 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.