【问题标题】:Will I get better dynamodb throughput with this change?通过此更改,我会获得更好的 dynamodb 吞吐量吗?
【发布时间】:2018-05-02 06:33:40
【问题描述】:

现在我有移动应用程序访问无服务器 aws lambda 端点,写入 1 条记录。有时,移动应用程序会一遍又一遍地写入其中的几条记录 (50-300)。下面是 1 条记录的示例:

    {
      "name": "John Doe",
      "miscValue": "1f2ea989-5b33-49e5-a88a-19c7594afd9d",
      "ratio": "1.7777777777777777",
      "new": true,
      "timestamp": "1524156952325"
    }

现在,如果我更改它,而不是每次 lambda 调用写入 1 条记录,它可以每次调用写入多条记录,然后执行更少的调用,这会导致 dynamodb 吞吐量降低吗?

示例场景:

应用程序可以写1 record per second for 100 seconds vs 10 records per second for 10 seconds

AWS 文档说明:

一个写入容量单位表示每秒一次写入一个项目 大小为 1 KB。如果你需要写一个大于 1 的项目 KB,DynamoDB 将需要消耗额外的写入容量单位。这 所需的写入容量单位总数取决于项目 大小。

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ProvisionedThroughput.html

这让我相信,由于我的记录大小远低于 1kb,如果我进行更改以一次处理多个记录,我会看到 dynamodb 吞吐量利用率的显着提高。对吗?

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb


    【解决方案1】:

    一个写入容量单位表示每秒写入一次最大为 1 KB 的项目

    如果您在表上配置 1 个写入单元,则无论您如何操作,您都可以每秒写入 1 个项目(除了突发容量 https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html#bp-partition-key-throughput-bursting)。如果项目大于 1 KB,则需要超过 1 个写入单元 (ceil(size / 1KB)) 来写入它。如果项目小于 1 KB,您无论如何需要 1 个写入单元。

    【讨论】:

    • 所以我的问题的答案是肯定的,我会看到显着的改进对吗?
    • 如果您为每个并行请求分配了足够的吞吐量,您将获得更好的吞吐量,因此答案是肯定的。否则,如果您只配置了 1 个写入单元,则答案是否定的。
    猜你喜欢
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    相关资源
    最近更新 更多