Dynamodb请求超过提供的吞吐量

时间:2016-10-05 05:48:41

标签: amazon-web-services amazon-dynamodb

我将预置写入容量设置为15,要将1kb /秒的文件写入db,需要1个写入容量。如果我发送60kb数据要插入,则有15个写入容量。这需要花费更多时间或者是否需要由于缺少写入容量单位而导致异常

2 个答案:

答案 0 :(得分:0)

DynamoDB会使用 HTTP状态代码400(错误请求)引发异常。

  

如果您的应用程序的读取或写入请求超出了规定的范围   对于表的吞吐量,DynamoDB可能会限制该请求。什么时候   发生这种情况,请求失败,出现HTTP 400代码(错误请求),   伴随着ProvisionedThroughputExceededException。 AWS软件开发工具包   内置支持重试受限制的请求。但是,你   可能要考虑在错误中使用指数退避逻辑   处理代码。有关更多信息,请参阅错误重试和指数   退避。

Error Retries and Exponential Backoff

答案 1 :(得分:0)

由于 Burst Capacity ,您的请求可能可能。以下是AWS Documentation对其的描述:

  

DynamoDB在每分区吞吐量配置方面提供了一些灵活性。   如果您没有充分利用分区的吞吐量,DynamoDB会保留一部分未使用的容量,以便以后突发吞吐量使用。 DynamoDB目前保留了5分钟(300秒)未使用的读写容量。在偶尔的读取或写入活动突发期间,这些额外的容量单位可以非常快速地消耗 - 甚至比您为表定义的每秒预配置吞吐量容量更快。

例如,如果您使用15个写入容量单位的14个预配置吞吐量5分钟,则会获得300个写入容量单位的突发容量。但是,这不是您的应用程序应该依赖的东西。 AWS DynamoDB文档还声明:

  

但是,请不要设计您的应用程序,以便它始终依赖于可用的突发容量:DynamoDB可以并确实使用突发容量进行后台维护和其他任务,恕不另行通知。

这也值得一提:

  

注意   将来,突发容量的这些细节可能会发生变化。

回答您提出的具体问题:如果60 Kb写入请求将以15 Kb / s的预配置吞吐量通过。很可能是的。我希望它是一次性的可重复的#34;请求而非常规行为,因为Burst Capacity完全适用于前一种情况:吞吐量使用量突然激增,超过了短时间内的最大预配置吞吐量。