内存数据库服务运营之路_第1页
内存数据库服务运营之路_第2页
内存数据库服务运营之路_第3页
内存数据库服务运营之路_第4页
内存数据库服务运营之路_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、内存数据库服务运营之路目录新浪内存数据库服务发展历程内存数据应用存储架构演进计数服务存储演化社交图谱存储演化OPS组织结构及运维系统架构演进反思与总结2011-2015In memory application roadmap in Sina06.51319.52620112012201320142015Redis(TB)Memcached(TB)In memory application roadmap in Sina06012018024020112012201320142015Redis应用数Memcached应用数In memory application roadmap in Sin

2、a040008000120001600020112012201320142015Redis日请求数(亿)Memcached日请求数(亿)2011-2015面临挑战2011微博索引Memcached请求量翻番 缓存失效风险2012微博计数服务Redis改造上线 Redis高可用2013异地机房部署 跨机房数据更新2013微博核心缓存请求量再次翻番 缓存面临超级热点2013年内存容量增长三倍 Redis应用内存疯长2013 2014App数量及请求量增长四倍 运维效率2015 2016 ?Memcached Roadmap in Sina应对缓存实效风险共享内存,更多分片(without mult

3、iget)主备缓存(with multiget)ClientsetgetClient1Master1Slave1Master2Slave3Cache应对跨机房数据更新消息总线 (e.g.WMB) 优势:不依赖队列外其他组件劣势:消息总线复杂性较高中间件更新 (e.g. Cacheservice)优势:应用透明,相对运维友好劣势:可靠性较低数据库复制 (e.g. MySQL Replication +Mytriggerq + Processor)优势:可靠劣势:维护额外数据库同步,消息格式转化相对受限。DC1 UpdateClientCacheDC2 ReplicateProcssorWMBqW

4、MBpWMBqCacheCacheDC1 UpdateDC2 ReplicateClientCacheserviceCacheCacheDC1 UpdateDC2 ReplicateClientDatabaseDatabaseMytqProcssorreplicationWMBpsetget应对超级热点多级缓存核心缓存快速构建数据副本Memcached L1 GroupL1FrontendLocalAppL0L1L1FrontendLocalAppL0CoreAPIMasterSlaveRedis Roadmap in Sina一主多从Slave故障自动摘除Master故障选主后闪恢复RDBA

5、OF1AOF2AOF3Redis高可用MasterSlave 1Slave 2Syncingfrom3-1001Syncingfrom3-901MasterRDBAOF2AOF3New MasterAOF1Slave 2Syncfrom3-901Cache化改造 store:cache 9:1 - 6:4数据结构优化RedisscounterCounterserviceDictEntry16字节RedisObject 16字节SDS Key32字节SDS16字节Key20字节Value4字节a K-V structure3倍容量优化Redis内存疯涨存储一个Key 20字节 ,两个Value

6、4字节计数a K-V structureX2X2Key20字节a K-V structureX1Value Value4字 4字节 节2倍容量优化应用存储架构演进计数服务存储演化Redis十亿级计数用Redis存储1亿计数需要多大空间?用户纬度增长(e.g 用户关注数,粉丝数,微博数)计数服务存储演化ClientRedisscounter shardHash(Sharding key)%nsetgetRedisRedis百亿级计数 (Counterservice2.0)微博纬度增长(e.g 微博转发评论数)MySQL热点更新响应不够稳定RedisCounterservice ShardClie

7、ntHash(Sharding key)%nRedisscounter ShardMySQLMySQL计数服务存储演化setgetClientHash(Sharding key)%n最近6个月6个月前Redis Counterservice3.0千亿级计数 (Counterservice 3.0)内存table写满后自动dump至SSDLRU cache防止历史热点计数服务存储演化ClientHash(Sharding key)%n6个月内table in memory6个月以前table in SSDTable113Table111Table110RedisTable114 LRUTable

8、112DumpcacheSSDsetget应用存储架构演进社交图谱存储演化社交图谱存储演化社交图谱 初级阶段graph_listattention/followersMemcached + MySQLMySQL Cluster(att)id1|from_uid1|to_uid1id2|from_uid1|to_uid2Memcached Clusterfrom_uid :to_uidsMySQL Cluster(fol)id1|to_uid1|from_uid1id2|to_uid1|from_uid2Graphlist2.SELECT * FROM attention/followersWH

9、ERE from_uid/to_uid offset_id LIMIT n;3.set1.get社交图谱存储演化社交图谱 中期阶段check attention/followersRedis HashsetMySQL+Mytrigger+RedisMySQL Clusterid1|from_uid1|to_uid1id2|from_uid1|to_uid2Redis storage ClusterHashsetGraphserviceMytrggerhgetallhexistsINSERT INTO attVALUES(from_uid,to_uid)hset(粉丝逻辑未变)社交图谱存储演化社

10、交图谱 进阶内存占用成本Redis Storage到Redis CacheHset性能瓶颈Longset优化长尾存储HBaseMySQL Clusterid1|from_uid1|to_uid1id2|from_uid1|to_uid2Redis cache ClusterGraphservice3.Lset2.SELECT * FROM attWHERE from_uid offset_id LIMIT n;HBase Clusterrowkey:from_uid1,to_uid1,timestampLongsetMemcached Cluster1.Lexist / Lget3.set1.

11、get2.get/ scan社交图谱存储演化未来计划持续分级存储存储层冷热分离至HBase缓存层冷热分离至SSDDBAOPS系统更要给力.OPS运维系统架构演进小作坊运维运维系统1.0运维系统2.0OPS运维系统架构演进小作坊运维独立监控报警系统多套运维系统共存工单进展难以跟踪运维系统多语言开发php pythonCMDB 运维数据监控数据工单服务初始化配置变更服务扩容MonGanglia监控&报警Cacti其他R&D系统运维系统WebUIOPS运维系统架构演进运维系统1.0统一中心管理单模块架构运维系统统一python监控数据服务初始化配置变更运维系统服务扩容RT监控配置管理Saltstack运维调度 CMDB 运维数据系统WebUIR&D API工单系统 其他基础系统依赖应用DashboardOPS运维系统架构演进工业时代2.0模块化,服务化,可持续迭代数据驱动监控数据初始化服务配置变更服务扩容服务

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论