- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内存数据库服务运营之路
内存数据库服务运营之路 目录新浪内存数据库服务发展历程内存数据应?用存储架构演进??计数服务存储演化社交图谱存储演化??OPS组织结构及运维系统架构演进反思与总结??2011-2015Redis(TB)Memcached(TB)2619.5136.5020112012201320142015In memory application roadmap in SinaRedis应?用数Memcached应?用数24018012060020112012201320142015In memory application roadmap in SinaRedis?日请求数(亿)Memcached?日请求数(亿)160001200080004000020112012201320142015In memory application roadmap in Sina2011-2015?面临挑战?2011微博索引Memcached请求量翻番 - 缓存失效?风险2012微博计数服务Redis改造上线 - Redis?高可?用2013异地机房部署 - 跨机房数据更新2013微博核?心缓存请求量再次翻番 - 缓存?面临超级热点2013年内存容量增?长三倍 - Redis应?用内存疯?长2013 2014App数量及请求量增?长四倍 - 运维效率2015 2016 ????????Memcached Roadmap in Sina 应对缓存实效?风险共享内存,更多分?片(without multiget)主备缓存(with multiget)??setgetClientClient 1Master1 Slave 1Master2 Slave3应对跨机房数据更新 DC1 Update ClientCache DC2 ReplicateProcsso rsetget消息总线 (e.g.WMB) ? 优势:不依赖队列外其他组件?CacheWMBqWMBq劣势:消息总线复杂性较?高?WMBpWMBp中间件更新 (e.g. Cacheservice)?DC1 UpdateDC2 Replicate优势:应?用透明,相对运维友好劣势:可靠性较低??ClientCacheCacheCacheservice数据库复制 (e.g. MySQL Replication +Mytriggerq + Processor)?DC2 ReplicateDC1 Update优势:可靠?Procsso rClientCacheCache劣势:维护额外数据库同步,消息格?式转化相对受限。MytqreplicationDatabaseDatabase应对超级热点Frontend LocalFrontend LocalAppAppL0 L0CoreAPI多级缓存核?心缓存快速构建数据副本??L1L1L1Memcached L1 Group?MasterSlaveRedis Roadmap in SinaRedis?高可?用 MasterSyncingSlave 1 from3-1001?一主多从?AOF1AOF2AOF3 …RDBSlave故障?自动摘除?Syncing from 3-901Slave 2Master故障选主后闪恢复?New Master AOF1MasterAOF2AOF3RDB…Sync from3-901Slave 2Redis内存疯涨 存储?一个Key 20字节 ,两个Value 4字节计数 a K-V structureCache化改造? store:cache 9:1 - 6:4 DictEntry 16字节RedisObject 16 字节?X2SDS Key 32字节 SDS16字节a K-V structure数据结构优化?X2Value 4字 节3倍容量优化 Key20字节Redisscounter?Counterservice?a K-V structureValue Value 4字 4字 节 节2倍容量优化X1 Key20字节应?用存储架构演进计数服务存储演化?计数服务存储演化 ClientsetgetHash(Sharding key)%n??十亿级计数 ?用Redis存储1亿计数需要多? ?大空间?Redisscount er shardRedis?用户纬度增?长(e.g ?用户关注数,粉丝数,微博数)?计数服务存储演化 set get Client Hash(Sharding key)%n 最近6个?月6个?月前 ClientHash(Sharding key)%n百亿级计数 (Counterservice2.0) 微博纬度增?长(e.g 微博转??发评论数)MySQL热点更新响应不够Redisscount er ShardRedisCoun
文档评论(0)