如何确保随着桌子尺寸的增加每天扫描桌子

时间:2019-05-14 00:44:02

标签: amazon-dynamodb distributed-system

我有一个DynamoDB表,该表存储S3中项目的元数据(即图像和文件)。有时S3项会被删除,但元数据不会被删除。因此,我运行了一个过程,该过程扫描整个dynamoDB表以检查S3对象是否仍然存在。如果不是,请删除dynamoDB行。但是随着对象总数的增加,扫描需要更长的时间才能完成。我想确保无论表有多大,都每天都要扫描DynamoDB中的所有内容。因此,寻找设计建议来重写扫描工具,该工具需要与表格一起水平扩展。

当前,我正在使用dynamoDB提供的并行扫描功能将表分成1000个部分。并添加更多线程以同时扫描每个其他部分。这样,通过增加并行度,整个扫描可以在更短的时间内完成。并安排该流程在午夜运行。但是我可以看到,当扫描零件的时间超过1天时,如果表增长超过某个阈值,此方法将失败。

1 个答案:

答案 0 :(得分:0)

与其在S3中先删除,不如在dynamo DB中标记已删除的条目,然后再使用dynamo DB更改提要在S3中查找和删除对象。除了使S3中的删除操作可靠之外,还可以使同步删除操作更快,并在删除操作上提供强大的一致性。