amazon-web-services - AWS Dynamodb 吞吐量

标签 amazon-web-services amazon-dynamodb throttling throughput

关于 AWS DynamoDb 吞吐量,我有些无法理解的地方。

让我们考虑强一致性读取。

现在,我明白在这种情况下,1 个容量单位意味着我每秒最多可以读取 4KB 的数据。

“每秒”这一点让我有点困惑。如果您确切地知道读取数据的速度,那么您可以适本地设置单位。但是如果您对阅读时间不太挑剔怎么办?

假设我只为我的表分配了 1 个读取单元,并且我尝试读取一个超过 4KB 的项目。现在这肯定意味着我的读取时间将超过 1 秒吗?那很好,但文档讨论了请求失败。当我没有请求在特定时间内读取数据时,AWS 如何确定我使用了太多单位?

也许我遗漏了一些明显的东西。有人能帮忙解决这个问题吗?

最佳答案

DynamoDB 可能会在 burst capacity 中消耗最多 300 秒的未使用吞吐量。 .

DynamoDB 中的最大项目大小为 400KB,1 个 RCU 最多可读取 4KB。

假设您想要读取一个大小为 400KB 的项目,并且您的 table 上有 1 个 RCU。您可以每 100 秒检索一次该项目。

由于突发容量,您总会有一个时间可以读取该项目,因为实际上您可以一次性使用多达 300 个 RCU,而不仅仅是 1 个。

想象一下以 400KB 的项目开始表。您需要等待 100 秒而不花费任何 RCU,以便获得足够的突发容量来获取该元素。 101 秒后,您提出请求,花费 100 RCU 并获取该元素。又过 5 秒后,您再次发出请求,但因限制异常而被拒绝。

因此,DynamoDB 不会增加请求延迟来满足您的 RCU 规定。它要么尽快返回结果,要么抛出异常。

编辑:顺便说一下,我应该提到所有 AWS DynamoDB SDK 都会为您处理限制异常。如果您尝试读取某个项目,但由于没有足够的可用吞吐量而被拒绝,则 SDK 会退出并重试。因此,除非您的表确实配置不足,否则您不必担心处理限制异常。

关于amazon-web-services - AWS Dynamodb 吞吐量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48287364/

相关文章:

graphql - DynamoDb 对存储日期的查询

python - 测试 Django throttle

java - 如何证明camel已经发生了 throttle

amazon-web-services - 连接到 DynamoDB Docker 时无法使用 NoSQL Workbench for DynamoDB 找到表

android - 无法将 Amazon DynamoDB 导入 android?

amazon-web-services - 如何在使用 Amazon Cognito 进行身份验证时公开访问 AWS AppSync GraphQL API?

amazon-web-services - AWS API Gateway 通过 Postman 返回不同的状态给方法测试

javascript - 如何使用 throttle 来获取事件目标?

amazon-web-services - Amazon RDS 停止实例

amazon-web-services - 如何使用 AmazonS3Client 在沙盒环境中测试 amazon s3