[Drivers] ACID transaction description#143
Conversation
jeff-allen-mongo
left a comment
There was a problem hiding this comment.
@rachel-mack thanks for this update! Left a few minor comments.
drivers/acid-transactions.rst
Outdated
| ACID transactions using sessions. These transactions use the snapshot isolation | ||
| level so applications see a consistent set of data while the transaction is |
There was a problem hiding this comment.
This is a nit, but a small suggestion to possibly better explain what we mean by "snapshot isolation".
| 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 |
drivers/acid-transactions.rst
Outdated
| 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 | ||
| running and write concerns to ensure changes are safely saved. With these |
There was a problem hiding this comment.
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" ?
drivers/acid-transactions.rst
Outdated
| level so applications see a consistent set of data while the transaction is | ||
| running and write concerns to ensure changes are safely saved. With these | ||
| features, MongoDB provides ACID guarantees that are comparable to those found in | ||
| traditional relational databases. No newline at end of file |
There was a problem hiding this comment.
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.
colbying
left a comment
There was a problem hiding this comment.
what context are these documentation changes? could you link me to a staging URL so I can understand the context?
|
|
||
| By default, operations on single documents conform to ACID standards. For | ||
| operations on multiple documents or collections, MongoDB supports multi-document | ||
| ACID transactions by using sessions. Sessions operate on data from a single |
There was a problem hiding this comment.
using sessions alone won't guarantee that your mutli-document writes will happen atomically, you need to create a transaction within that session.
| 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 |
There was a problem hiding this comment.
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.
This snippet will be applies to all driver's docs sets, along with instructions to update the existing transaction example to ensure that:
majorityat the client level