DynamoDB大事务写超时



我有一个服务,它接收大小从5 - 10k个项目不等的事件。我们将这些事件分成几个块,这些块需要在事务中写入,因为我们要做一些后处理,这取决于块中所有条目的成功写入。事件的顺序很重要,所以我们不能给他们写信,让他们稍后再处理。我们遇到了一个问题,我们接收到非常大(10k)的事件,它们阻塞了事件处理器,导致超时(目前设置为15秒)。我正在寻找一种方法来提高这些大型事件的处理速度,以消除超时。

我对想法持开放态度,但好奇是否有并发运行事务写的任何陷阱?例如,将事件分成100个块,并让X个线程通过它们并发地写入dynamo。

只要您有能力处理额外的吞吐量,就不必担心多线程写入DynamoDB。

我也会建议尝试小批量,如100个项目在一个批次中,如果一个碰巧失败了,那么他们都失败了。通常我建议将批量大小定为10个左右。当然,这取决于你的用例。

还要确保没有线程同时针对同一项,因为这将导致写冲突,从而导致大量批次失败。

总之,尽可能小的批处理,确保你的表有足够的容量,并确保你不会并发地碰到相同的项。

最新更新