【问题标题】:Are DynamoDB global secondary indexes sharded based on their own partition key?DynamoDB 全局二级索引是否根据自己的分区键进行分片?
【发布时间】:2020-07-13 18:26:50
【问题描述】:

当谈到他们对分区键设计的建议时,我对我在 DynamoDB 帮助中阅读的内容感到有些困惑。

this first page discussing distributing workload 上,他们解释说将负载分布在不同的分区键上很重要,因为这些分区键用于物理分片。很有道理。

但是在解释全局二级索引时,他们在提供的所有示例中都进行了完全相反的操作:

  • this highscore example 中,他们在具有单个值的键上创建了一个分区键!这是否意味着所有对高分的请求(根据问题定义“经常查询”)都会命中同一个分片?
  • GSI overloading example 中,他们建议创建一个使用表的排序键作为其分区键的 GSI,然后执行搜索,例如Employee_Name - 但Employee_Name 是 GSI 中的分区键,所以所有这些请求不会再次命中同一个分片吗?

这些示例不会在 GSI 上创建热分区并因此遭受扩展问题吗?还是我误会了什么?

【问题讨论】:

  • 这个例子讲的是稀疏索引,当你的表的每一行都有那个键时,它就不再是稀疏索引了。

标签: performance amazon-dynamodb scalability sharding


【解决方案1】:

我认为你是对的,而这些例子确实是错误的,原因正是你所引用的。

我认为在 GSI 重载示例中,他们切换了分区和排序键 - 我在几个月前打开了一个问题,解释了我为什么这么认为 - 请参阅 https://github.com/awsdocs/amazon-dynamodb-developer-guide/issues/202 - 但到目前为止它还没有修复(或没有人回来向我解释为什么这个例子是正确的)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    • 2017-04-20
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    相关资源
    最近更新 更多