QLDB 事务隔离
QLDB Transaction Isolation
我在这里查看示例代码:https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started.python.step-5.html,注意到 get_document_id_by_gov_id
、is_secondary_owner_for_vehicle
和 add_secondary_owner_for_vin
这三个函数分别在三个 driver.execute_lambda
来电。因此,如果有两个并发请求试图添加第二所有者,这是否会触发其中一个请求的序列化冲突?
我问的原因是我最初认为我们必须 运行 在同一个 execute_lambda
调用中的所有三个函数才能发生序列化冲突,因为每个 execute_lambda
调用使用一个会话,而会话又使用一个事务。如果它们在三个 execute_lambda
调用中是 运行,那么它们将分散到三个事务中,QLDB 将无法检测到冲突。但似乎我的假设不正确,对函数调用进行批处理的唯一好处就是更好的性能?
从 QLDB 专家那里得到了答案,所以要回答我自己的问题:这些操作应该包含在一个事务中,所以我最初的假设实际上是正确的。他们将更新代码示例以反映这一点。
我在这里查看示例代码:https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started.python.step-5.html,注意到 get_document_id_by_gov_id
、is_secondary_owner_for_vehicle
和 add_secondary_owner_for_vin
这三个函数分别在三个 driver.execute_lambda
来电。因此,如果有两个并发请求试图添加第二所有者,这是否会触发其中一个请求的序列化冲突?
我问的原因是我最初认为我们必须 运行 在同一个 execute_lambda
调用中的所有三个函数才能发生序列化冲突,因为每个 execute_lambda
调用使用一个会话,而会话又使用一个事务。如果它们在三个 execute_lambda
调用中是 运行,那么它们将分散到三个事务中,QLDB 将无法检测到冲突。但似乎我的假设不正确,对函数调用进行批处理的唯一好处就是更好的性能?
从 QLDB 专家那里得到了答案,所以要回答我自己的问题:这些操作应该包含在一个事务中,所以我最初的假设实际上是正确的。他们将更新代码示例以反映这一点。