Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ZHGDG_HOA.6_分布式元数据快速同步算法

 ZHGDG_HOA.6_分布式元数据快速同步算法

140511 #GDG #Zhuhai
分布式元数据快速同步算法

Zoom.Quiet

May 12, 2014
Tweet

More Decks by Zoom.Quiet

Other Decks in Technology

Transcript

  1. 背景: 系统特性 • 超大规模 • 去中心化 • Shared nothing •

    高读写性能 • 高扩展性 • 高可用 • 运维友好
  2. 背景: CAP理论 • swarmstorage – 做减法 – 专注存储的核心 – 确保可用性和读写性能

    – 同时确保数据的高强度一致性 – Content Addressable数据本身
  3. ODS(Orthogonal Digest Sync)算法 • 支持动态变化的内容同步 • 内容变化后,同步计算量极小 • 可以实时计算同步数据 •

    同步数据量小 • 同步数据量稳定 • 适用于高度同步的节点间, 定时同步少量变化状态
  4. 摘要算法 • 每条元数据(哈希值)为20字节字符串 • 全体元数据按固定bucket分割 • 摘要数据是离散的 • bucket数量: 分辨率

    • 第1,2维度没有数据重叠: 正交 • 第1个维度: 取前2个字节,共分割为65536个 bucket • 第2个维度: 取后2个字节
  5. 更新摘要 • 假设每个分区大小为3T, 平均每个文件1M, 存储 的元数据 – 3T/1M = 3145728

    – 3145728*40/(1024*1024) = 120MB • 对象均匀分布 • 需要更新48个对象个数 – 3145728/65536 = 48 • 需要计算的字节数 – 48*20*2 = 1920字节的CRC32
  6. 同步摘要 • 源节点将一个分区的完整摘要推送到目标节点 • 目标节点按相同维度对比,过滤出元数据 – 有差异的摘要 – 同时出现在2个维度 –

    即可能在源节点缺失的元数据(False Negative) • 返回差异的元数据 • 源节点跟本地元数据匹配,发现真实缺失的文件 对象
  7. 适应更快速变化 • 增加维度 – 取3个维度 – 摘要总量 256*256*4*3 = 786432,

    786KB – 准确度提高256倍 – 劣化情况无明显改善
  8. 适应更快速变化 • 提高分辨率, 增加bucket数量 – 取2.5个字节, 1048576 – 适用变化场景提高 16*16

    = 256倍(327680新文 件/秒) – 摘要总量 256*256*16*4*2 = 8388608, 8MB – 劣化情况明显改善