在与 UpdateItem 相同的项目中的 DynamoDB TransactWriteItems ConditionCheck
In DynamoDB TransactWriteItems ConditionCheck in same item as UpdateItem
在规划系统中,成千上万的用户同时竞争存储在 DynamoDB 中的相同时间段。
当用户尝试保留时间段时,TransactWriteItems 应该:
- 条件检查插槽是否仍然可用,如果可用
- UpdateItem 为该用户保留时间段。
但是,https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transaction-apis.html#transaction-isolation 说“您不能在同一事务中对同一项目执行 ConditionCheck 和 Update 操作。”
我如何才能确保用户只能保留其他人没有(不久前)保留的时间段?
您不需要交易。你可以只把项目放在保留时间段,并包括一个条件表达式,如果它已经被占用,它就会失败。
在规划系统中,成千上万的用户同时竞争存储在 DynamoDB 中的相同时间段。 当用户尝试保留时间段时,TransactWriteItems 应该:
- 条件检查插槽是否仍然可用,如果可用
- UpdateItem 为该用户保留时间段。
但是,https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transaction-apis.html#transaction-isolation 说“您不能在同一事务中对同一项目执行 ConditionCheck 和 Update 操作。”
我如何才能确保用户只能保留其他人没有(不久前)保留的时间段?
您不需要交易。你可以只把项目放在保留时间段,并包括一个条件表达式,如果它已经被占用,它就会失败。