Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon dynamodb 逻辑节点负责连续的密钥范围还是随机的密钥集_Amazon Dynamodb - Fatal编程技术网

Amazon dynamodb 逻辑节点负责连续的密钥范围还是随机的密钥集

Amazon dynamodb 逻辑节点负责连续的密钥范围还是随机的密钥集,amazon-dynamodb,Amazon Dynamodb,我在读它,它解释了从散列函数获得的键如何创建(循环)范围。然后,逻辑节点负责该范围内的连续段 Dynamo的分区方案依赖于对 跨多个存储主机分配负载。一致 散列[10],散列函数的输出范围被视为 固定圆形空间或“环”(即最大散列值) 大约为最小哈希值)。系统中的每个节点都是 在此空间内指定了一个表示其 环上的“位置”。每个由键标识的数据项都被分配 通过散列数据项的键以产生其在 环,然后顺时针走环以找到第一个节点 大于项目位置的位置 但是,在均匀载荷分布下,详细介绍了一些策略: 策略1:每个节点T

我在读它,它解释了从散列函数获得的键如何创建(循环)范围。然后,逻辑节点负责该范围内的连续段

Dynamo的分区方案依赖于对 跨多个存储主机分配负载。一致 散列[10],散列函数的输出范围被视为 固定圆形空间或“环”(即最大散列值) 大约为最小哈希值)。系统中的每个节点都是 在此空间内指定了一个表示其 环上的“位置”。每个由键标识的数据项都被分配 通过散列数据项的键以产生其在 环,然后顺时针走环以找到第一个节点 大于项目位置的位置

但是,在均匀载荷分布下,详细介绍了一些策略:

策略1:每个节点T个随机令牌,并按令牌值进行分区

策略2:每个节点和大小相等的分区使用T个随机令牌

那么这些令牌(我假设它们是密钥?)会随机分布到节点上吗


所以逻辑节点负责一系列连续的键或一组随机键?

免责声明:我刚刚读过这篇论文,我不是专家

我理解代币和钥匙都会占用钥匙空间(即钥匙圈上的位置),但它们不是一回事

Dynamo使用“虚拟节点”的概念。虚拟节点看起来像 系统中的单个节点,但每个节点可以负责更多 多个虚拟节点。实际上,当新节点添加到 系统中,它被分配多个位置(此后称为“标记”) 戒指

因此,在“基本一致散列算法”方法中,将系统中的每个节点随机分配到密钥环中的一个位置。因此,每个节点负责密钥空间中的单个连续范围。如果你愿意的话,请给我一个楔子

作者指出,这在访问的一致性方面存在一些问题。因此,他们提出了一种“一致散列算法的变体”

在替代方案中,为每个节点提供一组“令牌”。令牌是一个虚拟节点。从概念上讲,您可以想象从环的四周提取并分配给节点的大量小密钥空间。或者在我的脑子里——圆圈周围有很多小楔子

在他们追求的实际方案中,每个虚拟节点(令牌)都是一组连续的密钥。但是,每个实际节点都有多个非连续虚拟节点

因此,每个节点都有许多连续密钥空间的部分,但这些部分取自整个密钥空间。不是很随机,也不是很连续

请注意,这不是“DynamoDB”白皮书。这是一篇2007年的论文,讲述的是一个被称为“发电机”的前身系统,但具体到什么程度还没有具体说明。