0

Во многих базах данных, когда операция выполняется без явного запуска транзакции, база данных создает новую транзакцию неявно.Непосредственно создает ли хранилище данных Google Cloud транзакции?

Есть ли хранилище данных?

Если это не так, есть ли какая-либо модель для рассуждения о том, как данные изменяются при отсутствии транзакций? Как делать, извлекать и читать, работать вне транзакций?

Если да, то есть ли какая-либо характеристика, когда и как. Всегда ли это делает? Какова область транзакции?

+0

официальные документы говорят, что транзакции являются необязательными. –

+0

Есть ли у вас какие-либо ссылки, где это явное? – user2771609

+0

см. Оффициальные документы по транзакциям java python –

ответ

2

Мутация (поместить, удалить) одного объекта всегда будет атомарной (полностью или полностью сбой). Вы можете думать о единственной мутации как транзакционной, даже если вы не предоставляли транзакцию.

Однако, если вы отправляете несколько мутаций в одном и том же не транзакционном запросе, этот общий запрос не является атомарным. Каждая мутация может преуспеть или потерпеть неудачу независимо - одна неудача не приведет к возврату других мутаций.

+0

Спасибо. Знаете ли вы, что атомарность одиночных мутаций документирована где угодно? – user2771609

+0

Я не думаю, что это в настоящее время документировано. Я собираюсь проверить нашу коллекцию документов, чтобы узнать, можно ли добавить ее. –

+0

Спасибо, это было бы здорово. Я думаю, что хранилище данных - потрясающий продукт, но я серьезно не могу понять, насколько плоха документация. Такие вещи, как транзакции и атомарность, являются абсолютными основами. Не должно быть путаницы в том, что происходит на этом уровне. – user2771609

0

«Транзакции являются дополнительной функцией хранилища данных, и вам не требуется использовать транзакции для выполнения операций хранилища данных».

так что для вас нет автоматических транзакций более чем на одном объекте.

единичная фиксация будет вести себя так же, как и внутренняя транзакция. поэтому, если вы меняете более одного объекта или совершаете его более одного раза, его как будто вы каждый раз открываете и закрываете транзакцию.

+0

Кажется, что изображение более сложное. Это не из оригинальной документации, кроме книги Данса Сандерсона, программирования Google App Engine с Python (также он работает в Google): «Когда вы создаете, обновляете или удаляете один объект, это происходит в транзакции». – user2771609

+0

Да, но я думал, что вы спрашиваете о транзакции, охватывающей более чем одну сущность. да, один объект имеет тот же маршрут, что и транзакция. –

+0

ive обновил ответ, отметив, что он применяется к нескольким объектам или операциям хранилища данных. на операции с одним объектом да, он ведет себя так же, как транзакция, которая охватывает операцию единственного объекта (put и т. д.), поскольку внутри это несколько операций (для сохранения в нескольких местах для избыточности и т. д.) –