amazon-web-services - DynamoDB 中相同分区键的数据分布

标签 amazon-web-services amazon-dynamodb distributed-system database nosql

据我了解,DynamoDB 会尝试将具有相同分区键的项目放入同一分区。我的问题是,当分区已满并分成 2 个不同的分区时,散列如何工作?

例如,一个表有一个分区键A,DynamoDB将所有分区键为A的项目放入同一个分区P,然后 P 已满,dynamo 会将 P 拆分为 P1P2,现在是一个新项目 I 带有分区键 A 由客户端插入,dynamo 如何决定插入哪个分区(即 P1P2)

最佳答案

All items with the same partition key are stored together, and for composite partition keys, are ordered by the sort key value. DynamoDB splits partitions by sort key if the collection size grows bigger than 10 GB.

来源:https://aws.amazon.com/blogs/database/choosing-the-right-dynamodb-partition-key/

所以在那种情况下,他们将使用排序键来决定元素存储在哪个分区中。

但是,我不知道他们如何处理没有排序键的情况。

我还猜测访问一个分区的时间将不再是常量,因为需要根据该分区键的分区数以对数时间找到合适的分区。因为如果您使用带有分区键的排序键来计算“合并”哈希键,您将无法保持元素排序(具有连续排序键的元素将位于不同的分区中)。

关于amazon-web-services - DynamoDB 中相同分区键的数据分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44983013/

相关文章:

p2p - 学习分布式系统中更新通信算法的最佳论文是什么?

amazon-web-services - AWS ECS Fargate 从跨账户 ECR 存储库拉取镜像

amazon-web-services - 具有通配 rune 件路径的 Cloudwatch 代理 InvalidParameterException

amazon-web-services - 在 AWS Lambda 函数内解密和设置环境变量是否存在漏洞?

ios - 仅使用 swift 中的范围键查询 AWS DynamoDB 服务器

messaging - Lamport 的(物理)时钟同步算法

amazon-web-services - 具有有限弹性IP的AWS架构

database-design - 为不同的排序查询建模 NoSQL 数据库 (DynamoDB)

ios - 扫描一张表好还是只创建一个散列键好?

单机中的 NoSQL