- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Qcon_微信后台存储架构_许家滔》.pdf
@InfoQ infoqchina
微信后台存储架构
许家滔
sunnyxu@
微信产品部-基础平台组
大纲
微信通用存储系统(Quorumkv)
前言 (需求背景)
系统概况
系统架构 (强一致性协议,存储模型,分片)
真实系统
前言-微信分布
上海天津深圳香港加拿大…
同城多园区分布
系统概况
数据存储基础设施
分布式强一致
同城园区级容灾
支持类SQL查询
系统概况
mem
ssd,sas
50+ 业 核心存
务模块 储模块
系统架构-背景
A.分布式问题收敛
后台逻辑模块专注逻辑,快速开发
可能读取到过时的数据是个痛点
需要看到一致的数据
系统架构-背景
B. 内部定义
数据拥有两个以上的副本
如果成功提交了变更,那么不会再返回旧数据
系统架构-推演
1.增加一个数据
系统架构-推演
2.序列号发生器,偏序
约束:只能有一个client操作
client有解决冲突的能力
问题转移:client如何分布?
系统架构
3.修改集群中一个指定key 的value
1)覆盖它
2 )根据value 的内容做修改
if value = 1 then value := 2
系统架构
1.通用解法:
1) paxos算法
工程难度
一切可控
系统架构-分布算法设计
2) Quorum算法 (2011 )
在单个key上面运算
真实系统约束
类paxos方案,简化
系统架构-分布算法设计
为每次变更选举(by key)
算法过程
提议/变更/同步/广播
系统架构
系统架构-写流程
系统架构-Replication Sharding
权衡点
自治,负载均衡,扩散控制
replication - relation
容灾低消
同城(上海)多数派存活
三园区(独立供电,独立。。)
系统架构-Replication
系统架构-Replication
系统架构-Sharding
一组kv6为一个单位
1.人工分段
局部扩容,影响收敛
2.均匀分布 指定分段 hash32(string)
翻倍扩容
3.一致性哈希
具体实现?
系统架构-概览
1.业务侧快速开发
存储需要提供强一致性
丰富的数据模型支持 (结构化/类SQL/KV)
条件读,条件写
2.业务增长迅速
文档评论(0)