首页 文章

LIST的S3性能,前缀为单个桶中的数百万个对象

提问于
浏览
3

我有一个项目,S3桶中将有大约8000万个对象 . 每天,我将删除大约400万,并增加400万 . 对象名称将位于伪目录结构中:

/012345/0123456789abcdef0123456789abcdef

要删除,我需要列出前缀为 012345/ 的所有对象,然后删除它们 . 我担心这个LIST操作需要的时间 . 虽然看起来很清楚S3's access time for individual assets does not increase for individual objects, I haven' t发现任何明确的说明超过80MM对象的LIST操作,搜索所有具有相同前缀的10个对象将在如此大的桶中保持快速 .

side comment on a question about the maximum number of objects中,可以存储在一个桶中(从2008年开始):

根据我的经验,随着对象数量的增加,LIST操作确实会(线性地)延长,但这可能是亚马逊服务器上所需的I / O增加和客户端连接的一个症状 .

来自Amazon S3 documentation

对于可以存储在存储桶中的对象数量没有限制,无论使用多个存储桶还是少量存储桶,性能都没有差别 . 您可以将所有对象存储在一个存储桶中,也可以将它们组织在多个存储桶中 .

虽然我倾向于相信亚马逊的文档,但是他们的评论指向的操作并不完全清楚 .

在承诺这个昂贵的计划之前,我想明确知道当存储桶包含数百万个对象时,按前缀搜索时LIST操作是否仍然很快 . 如果有人拥有如此大型水桶的实际经验,我很乐意听取您的意见 .

2 回答

  • 2

    我从来没有见过一个问题,但为什么你会列出一百万个文件只是为了从列表中提取一些文件?这不是S3的表现,它可能会花费更长的时间 .

    为什么不将文件名存储在数据库中,索引它们,然后从那里进行查询 . 这是我认为更好的解决方案 .

  • 3

    如果您对've chosen the prefixes correctly. Here'进行解释,前缀搜索速度很快:https://cloudnative.io/blog/2015/01/aws-s3-performance-tuning/

相关问题