递增的整数 PK 会在 DynamoDB 中产生统一的工作负载吗

Will an incrementing integer PK produce uniform workload in DynamoDB

我正在寻找索引 DynamoDB 中的一些数据,并想键入一个递增的整数 ID。较高的 ID 将获得大部分流量,但是这将平均分布在数以万计的最高 ID 中。这会创建 important for DynamoDB 的统一数据访问吗?

AWS 似乎没有公布他们用于生成主键的散列算法的详细信息。我假设它类似于 md5,例如,3000 的哈希与 300130023003 完全不同,因此它会导致它均匀分布的工作量。

我问的原因是,我知道这 不是 S3 中的情况,他们建议 reversing auto incrementing IDs 在这种情况下。

DynamoDB 似乎没有在文档中公开散列的内部工作原理。很多places好像都引用了MD5,但是不知道能不能算权威

有一项关于数字序列的哈希分布的有趣研究可用here。有趣的数据集是数据集 4 和数据集 5,它们处理数字序列。从分区的角度来看,大多数散列函数(和 MD5 更是如此)似乎分布令人满意。

AWS 已确认使用递增整数 ID 将创建均匀的工作负载:

If you are using incrementing numbers as the hash key, they will be distributed equally among the hash key space.

来源:https://forums.aws.amazon.com/thread.jspa?threadID=189362&tstart=0