user2771609
user2771609

Reputation: 1903

Does the Google Cloud Datastore create transactions implicitly?

In many databases, when an operation is performed without explicitly starting a transaction, the database creates a new transaction implicitly.

Does the datastore do this?

If it does not, is there any model for reasoning about how the data changes in the absence of transactions? How do puts, fetches, and reads, work outside of transactions?

If it does, is there any characterization for when and how. Does it do it always? What is the scope of the transaction?

Upvotes: 0

Views: 404

Answers (2)

Ed Davisson
Ed Davisson

Reputation: 2927

A mutation (put, delete) of a single entity will always be atomic (succeed entirely or fail entirely). You can think of the single mutation as transactional, even if you did not provide a transaction.

However, if you send multiple mutations in the same non-transactional request, that overall request is not atomic. Each mutation may succeed or fail independently -- one failure will not cause the other mutations to be reverted.

Upvotes: 2

Zig Mandel
Zig Mandel

Reputation: 19835

"Transactions are an optional feature of the Datastore; you're not required to use transactions to perform Datastore operations."

so there are no automatic transactions being opened for you across more than a single entity datastore operation.

a single entity commit will behave the same as a transaction internally. so if you are changing more than one entity or committing it more than once, its as if you open and close a transaction every time.

Upvotes: 0

Related Questions