微信后台存储架构

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

微信后台存储架构!许家滔sunnyxu@tencent.com微信产品部-基础平台组微信通⽤用存储系统(Quorumkv) !前⾔言(需求背景) !系统概况 !系统架构(强⼀一致性协议,存储模型,分⽚片) !真实系统⼤大纲前⾔言-微信分布上海天津深圳⾹香港加拿⼤大…!同城多园区分布数据存储基础设施分布式强⼀一致同城园区级容灾⽀支持类SQL查询系统概况mem ssd,sas核⼼心存储模块50+业务模块系统概况A.分布式问题收敛

后台逻辑模块专注逻辑,快速开发

可能读取到过时的数据是个痛点

需要看到⼀一致的数据

系统架构-背景B.内部定义

数据拥有两个以上的副本!如果成功提交了变更,那么不会再返回旧数据

系统架构-背景1.增加⼀一个数据



系统架构-推演2.序列号发⽣生器,偏序

约束:只能有⼀一个client操作

client有解决冲突的能⼒力

问题转移:client如何分布?系统架构-推演3.修改集群中⼀一个指定key的value

1)覆盖它

2)根据value的内容做修改

ifvalue=1thenvalue:=2



系统架构1.通⽤用解法: 
1)paxos算法

⼯工程难度 ! ⼀一切可控 系统架构2)Quorum算法(2011)

在单个key上⾯面运算

真实系统约束

类paxos⽅方案,简化 

系统架构-分布算法设计!为每次变更选举(bykey) !算法过程 提议/变更/同步/⼴广播 系统架构-分布算法设计系统架构系统架构-写流程权衡点 !⾃自治,负载均衡,扩散控制replication-relation!容灾低消 !同城(上海)多数派存活 三园区(独⽴立供电,独⽴立。。)!系统架构-Replication&Sharding系统架构-Replication系统架构-Replication⼀一组kv6为⼀一个单位!1.⼈人⼯工分段 局部扩容,影响收敛!2.均匀分布指定分段hash32(string) 翻倍扩容!3.⼀一致性哈希 具体实现?!! 系统架构-Sharding1.业务侧快速开发 存储需要提供强⼀一致性 丰富的数据模型⽀支持(结构化/类SQL/KV)条件读,条件写 !2.业务增长迅速,系统要能够⽅方便地横向扩容 !3.设备故障/短时节点失效成为常态,容灾⾃自动化,主备可写⽆无需⼈人⼯工介⼊入!4.⼩小数据! 系统架构-概览系统架构-概览纯内存!Bitcask!⼩小表系统!LSM-tree系统架构-存储模型系统架构-bitcask解决写放⼤大问题!数据按变更聚集存储Affected1!ChangeTable(1+2+…+n-1+total)/n!分裂与合并系统架构-⼩小表系统系统架构-数据流动⾃自动化迁移!节点同时做代理!合并磁盘io真实系统-同步流量同步流量!数据vs操作!幂等!保底策略真实系统-通信包量动态合并100kqps200%-10%!权衡与估算!设计要点真实系统-吞吐量异步化!复杂度!libco真实系统-⾃自动修复系统不要让错误累积!全量扫描其他bitcask的⼀一些变化!内存限制!全内存Q&Asunnyxu@tencent.com

1 / 32
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功