分布式哈希表(DHT)是一种分散的数据存储,它根据键值对查找数据。分布式哈希表中的每个节点都负责一组键及其相关值。键是其关联数据值的唯一标识符,通过散列函数运行该值创建。数据值可以是任何形式的数据。
分布式哈希表是去中心化的,因此所有节点都形成了集体系统,无需任何集中协调。它们通常具有容错性,因为数据跨多个节点复制。分布式哈希表可以针对跨多个节点的大量数据进行扩展。
△图片源自维基百科
分布式哈希表与区块链
分布式哈希表是分布式数据库的一种形式,可以存储和检索与可以随时加入和离开网络的对等节点网络中的密钥相关联的信息。节点之间相互协调以平衡和存储网络中的数据,而无需任何中央协调方。复制键/值对时,分布式哈希表具有容错性和弹性。在对等点之间分发数据的能力与区块链模型形成鲜明对比。
分布式哈希表查找复杂度
分布式哈希表查找复杂度为O(log n),其中n是网络中的节点数。
为什么要使用分布式哈希表?
分布式哈希表提供了一种在大量数据集合中查找信息的简便方法,因为所有键都采用一致的格式,并且可以以允许快速识别键/值对所在位置的方式对整个键集进行分区。参与分布式哈希表的节点充当对等点来查找特定的数据值,因为每个节点都存储键分区方案,因此如果它收到访问给定键的请求,它可以快速将键映射到存储该键的节点。数据。然后它将请求发送到该节点。
此外,可以轻松添加或删除分布式哈希表中的节点,而无需强制对集群中的数据进行大量重新平衡。集群重新平衡,尤其是对于大型数据集,通常是一项耗时的任务,也会影响性能。拥有一种快速简便的方法来扩展或缩小集群可确保数据大小的变化不会中断访问分布式哈希表中数据的应用程序的操作。
分布式哈希表的属性
分布式哈希表具有以下3个属性:
去中心化和自治:节点共同组成系统,没有任何中央权威。
容错:系统是可靠的,节点可以随时加入、离开和失败。
可扩展性:分布式哈希表在数千或数百万个节点的情况下高效运行。