【笔记】分布式哈希表(DHT)

本文深入探讨了分布式哈希表(DHT)的概念及其关键设计挑战,包括动态节点管理、路由效率和容错机制。特别介绍了ContentAddressableNetwork(CAN),一种基于虚拟空间划分的DHT实现,详细分析了其路由算法及性能特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 主要设计目标
    • 1.去中心化
    • 2.可扩展(随节点增加有效扩展)
    • 3.容错(处理当有node出现故障的情形)
      hash table

1.Introduction

  • hash table通过key联系数据
  • 在分布式哈希表(DHT)中,节点(node)是哈希桶
1.1 可能会出现的问题
  • Problem 1:动态的加减节点
    problem 1
    • 解决办法:
      • a. 定义一个混合的hash空间
      • b. 所有的hash值不依赖于节点数量落入空间
      • c. 每个key到达hash空间中与其id最接近的对等节点
  • Problem 2:插入和查询数据时需要所有节点
    • 解决办法:
      • 每个节点只需要知道其相邻的节点
      • 信息经邻居节点通过多跳路由发送(overlay routing)
1.2 如何设计一个好的DHT呢?
  • 1.对于每一个对象,负责该对象的节点应该可以通过一个较短的路径到达。(small diameter);不同的DHTs仅仅在路由方法上不同。
  • 2.每个节点的邻居数量应该保持合理(small degree)。
  • 3.DHT的路由机制应该是去中心化的(no single point of failure or bottleneck没有单点故障或瓶颈)。
  • 4.可以较好的处理节点加入和去除
    • a.在现有节点上重新划分受影响的keys
    • b.重新组织其邻居节点
    • c.引导机制将新的节点连接到DHT上
  • 5.DHT必须有低的伸展性(degree不能太大)

2.Content Addressable Network(CAN)

  • 思想:用一个虚拟的d维笛卡尔空间协调每一个item,其中每个节点拥有一个子空间。
  • Source: S. Ratnasamy, P. Francis, M. Handley, R. Karp, S.Shenker (UC Berkeley and ACIRI). "A Scalable Content-Addressable Network”. ACM SIGCOMM,2001.
2.1 Introduction
  • 时间复杂度: O ( n 1 / d ) O(n^{1/d}) O(n1/d)
  • 一个映射在d-torus上一个区域的节点,称作拥有这个区域。
  • 每个文件F通过key K F K_{F} KF来判别。
  • 哈希函数h将一个key映射在d-torus上的[0, 1]中。
  • 一个CAN节点维护着坐标路由表,该表有其自身的IP地址和其在d-torus上每一个邻居的虚拟坐标区域。
    torus
2.2 CAN: routing algorithm

routing algorithm

  • 如果d-torus被划分为n个相等的区域,则平均路由路径经过 ( d / 4 ) n 1 / d (d/4)n^{1/d} (d/4)n1/d,或 O ( n 1 / d ) O(n^{1/d}) O(n1/d)
  • 为什么是 ( d / 4 ) n 1 / d (d/4)n^{1/d} (d/4)n1/d跳?
    1-D
    2-D
    d-D
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值