Skip to content
Open
Changes from all 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
11 changes: 11 additions & 0 deletions drivers/acid-transactions.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
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
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 by using sessions. Sessions operate on data from a single
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

using sessions alone won't guarantee that your mutli-document writes will happen atomically, you need to create a transaction within that session.

point-in-time snapshot, so applications see a consistent set of data while the
transaction is running. Sessions rely on write concerns to ensure changes to data are
submitted safely.