GSI 的一个问题是最终一致性问题。 那么如何设计一个强一致性的多对多关系呢?
假设我有一个分区键作为 customerid,排序键作为 accountnumber
账号上有一个 gsi
插入记录后我还需要支持按帐号查找。
但是使用帐号上的 gsi 我可能会遇到竞争条件,然后通过帐号查找我不会返回结果
那么该怎么办呢?如何解决强一致性的多对多关系?
参考文档 -https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-adjacency-graphs.html
GSI 很方便,允许您执行一次插入并获取两项(一项在基表中,一项在索引中)。
您可以删除 GSI 并自己插入两项(一项插入基表,另一项使用不同的键插入替换 GSI 的不同基表),并且您可以在写入时使用事务来获得强一致性。