SmugMug的基本架构 队列服务 EC2 处理照片 用户访问 SmugMug 存储 控制器 存储照片 队列服务
SmugMug的基本架构 用户 SmugMug 队列服务 队列服务 EC2 S3 控制器 访问 处理照片 存储照片 存储
AWS的业务流程 注册账户 ·资源申请 ·创建虚拟节点 ·将虚拟节点映射到物理节点 ·分割算法 数据处理 数据同步
AWS的业务流程 • 注册账户 • 资源申请 • 创建虚拟节点 • 将虚拟节点映射到物理节点 • 分割算法 • 数据处理 • 数据同步
基础存储架构 Dynamo Dynamo在 Amazon服务平台中的地位 · Dynamo架构的主要技术 问题 采取的相关技术 数据均衡分布 改进的一致性哈希算法,数据备份 数据冲突处理 向量时钟( vector clock) 临时故障处理 Hinted handoff(数据回传机制),参数 (WRN)可调的弱 quorum机制 永久故障后的恢复 Merkle哈希树 成员资格以及错误检测基于 gossIp的成员资格协议和错误检测
基础存储架构Dynamo • Dynamo在Amazon服务平台中的地位 • Dynamo架构的主要技术 问题 采取的相关技术 数据均衡分布 改进的一致性哈希算法,数据备份 数据冲突处理 向量时钟(vector clock) 临时故障处理 Hinted handoff(数据回传机制),参数 (W,R,N)可调的弱quorum机制 永久故障后的恢复 Merkle哈希树 成员资格以及错误检测 基于gossip的成员资格协议和错误检测
数据均衡分布的问题 计算数据键 计算节 致性哈希算法 [节点A 优势: 「节点F 负载均衡 节点B 屏蔽节点处理 能力差异 「点D
数据均衡分布的问题 • 一致性哈希算法 • 优势: --负载均衡 --屏蔽节点处理 能力差异 虚拟 节点A 虚拟 节点B 虚拟 节点C 虚拟 节点D 键 k 节点A 节点B 节点 节点C D 节点E 节点F 节点G 计算节点的 哈希值 计算数据键 值的哈希值
Dynamo的数据冲突处理 write handled by Sx ·可靠,可用,一致 D1([sx,1]) 最终一致性模型 write handled by Sx ·向量时钟 D2(sx2]) (Vector Clock) write write handled by Sy handled by sz D3([sX2],[Sy1) D4(sx2],[sz,1) reconciled and written by D5([sx3][sy1[sz.1)
Dynamo的数据冲突处理 • 可靠,可用,一致 • 最终一致性模型 • 向量时钟 (Vector Clock)