Классы поддерживающие транзакцию



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

Транзакция - это операция или набор операций, которые либо все будут произведены успешно, либо ни одна из них не будет применена. Если транзакция завершилась успешно, то все ее операции будут применены к данным хранилища. Если в процессе транзакции произошла хотя бы одна ошибка, то ни одна из ее операций не будет применена.Этот пример демонстрирует процесс использования транзакций: увеличение существующего числового значения свойства объекта.

def increment_counter(key, amount):obj = db.get(key)

obj.counter += amount obj.put()

Этот код требуется выполнять в рамках одной транзакции, так как между операциями db.get(key) и obj.put() может произойти изменение объекта другим пользователем. Без использования транзакции запрос пользователя будет использовать значение obj.counter до его изменения и операция obj.put() перезапишет последнее. Исполнение этого кода в рамках транзакции гарантирует, что объект не будет изменен между двумя обращениями к хранилищу. Если объект изменяется в результате другой транзакции, то она будет повторена несколько раз, до тех пор, пока все ее операции не будут проведены успешно.



Дата добавления: 2015-12-21; просмотров: 48; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!