首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DynamoDB节流

DynamoDB节流
EN

Stack Overflow用户
提问于 2016-04-18 03:58:19
回答 2查看 2K关注 0票数 6

我有一个具有5个读和5个写容量的发电机表。在这个表中,我有两条记录。

然后,我决定看看通过一次推入大量写入(一次突发大约4000条记录),我会得到什么样的错误响应。蓝色的“消耗”线直接越过红色的“容量”线,但是我没有得到任何类型的错误信息。

指标显示发生了节流,但如果我超过两个容量级别,我的读取和写入仍然会发生。

我已经花费了超过30分钟的时间来推送读和写,远远超出了容量,目前还没有错误。

我不确定这是不是因为我在node js中使用了官方的javascript SDK,它可能会透明地处理节流并重试已节流的查询?

我希望有人能在这方面给我一些指导。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-04-18 14:59:13

我只想在@Luc Hendriks的答案中添加一个关于节流的通知

即使你超出了“突发容量”,DynamoDb开始节流,你也会相对较少地获得ProvisionedThroughputExceededException (根据我的经验)。这是因为SDK静默地重试限制的请求(所以您是对的,SDK透明地处理限制)。

您可以使用maxRetries参数来禁用自动重试,这样在您看到指标中的节流后,您将立即获得ProvisionedThroughputExceededException。

以下是如何在不自动重试的情况下执行更新请求的示例:

代码语言:javascript
复制
var aws_dynamodb = new aws.DynamoDB({maxRetries: 0}),
    aws_dynamodb_doc = new aws.DynamoDB.DocumentClient({service: aws_dynamodb});

// ...
aws_dynamodb_doc.update(params, function(err, data) {
  // ...
});
票数 3
EN

Stack Overflow用户

发布于 2016-04-18 04:26:49

这是因为突发容量。您可以在亚马逊网络服务文档上阅读更多信息:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GuidelinesForTables.html#GuidelinesForTables.Bursting

基本上,这意味着你可以拥有300秒的“存储容量”,并在负载达到峰值时将其用作池。在您的情况下,这将是一个1500个请求的池,您可以立即使用,并在容量未使用时重新填充。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36681511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档