欢迎来到天天文库
浏览记录
ID:37332446
大小:2.51 MB
页数:32页
时间:2019-05-21
《内存数据库服务运营之路》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、内存数据库服务运营之路@启盼cobain“RAMisthenewdisk...”—JimGray目录•新浪内存数据库服务发展历程•内存数据应用存储架构演进•计数服务存储演化•社交图谱存储演化•OPS组织结构及运维系统架构演进•反思与总结2011-2015Redis(TB)Memcached(TB)2619.5136.5020112012201320142015InmemoryapplicationroadmapinSinaRedis应用数Memcached应用数24018012060020112012201
2、320142015InmemoryapplicationroadmapinSinaRedis日请求数(亿)Memcached日请求数(亿)160001200080004000020112012201320142015InmemoryapplicationroadmapinSina2011-2015•面临挑战•2011微博索引Memcached请求量翻番->缓存失效风险•2012微博计数服务Redis改造上线->Redis高可用•2013异地机房部署->跨机房数据更新•2013微博核心缓存请求量再次翻番->缓
3、存面临超级热点•2013年内存容量增长三倍->Redis应用内存疯长•20132014App数量及请求量增长四倍->运维效率•20152016?MemcachedRoadmapinSina应对缓存实效风险•共享内存,更多分片(withoutmultiget)•主备缓存(withmultiget)setgetClientClient11123MasterSlaveMasterSlave应对跨机房数据更新DC1UpdateDC2Replicateset•消息总线(e.g.WMB)getClientProcsso
4、CacherCache•优势:不依赖队列外其他组件WMBqWMBq•劣势:消息总线复杂性较高WMBpWMBp•中间件更新(e.g.Cacheservice)DC1UpdateDC2Replicate•优势:应用透明,相对运维友好ClientCacheCache•劣势:可靠性较低•数据库复制(e.g.MySQLReplication+CacheserviceMytriggerq+Processor)DC1UpdateDC2Replicate•优势:可靠ClientProcssoCacherCache•劣势:维
5、护额外数据库同步,消息格式转化相对受限。replicationMytqDatabaseDatabase应对超级热点FrontendFrontendLocalAppLocalApp•多级缓存L0L0•核心缓存快速构建数据副本CoreAPIL1L1L1•MemcachedL1GroupMasterSlaveRedisRoadmapinSinaRedis高可用MasterSyncingfromSlave1•一主多从AOF13-1001AOF2RDB•Slave故障自动摘除AOF3SyncingfromSlave2
6、…3-901•Master故障选主后闪恢复NewMasterMasterAOF1AOF2RDBAOF3…SyncfromSlave23-901Redis内存疯涨存储一个Key20字节,两个Value4字节计数aK-Vstructure•Cache化改造DictEntry16字节SDSKeySDSX232字节16字节RedisObject16•store:cache9:1->6:4字节aK-Vstructure•数据结构优化3倍容量优化ValueKeyX24字•Redisscounter20字节节•Count
7、erserviceaK-Vstructure2倍容量优化KeyValueValueX14字4字20字节节节应用存储架构演进•计数服务存储演化计数服务存储演化setClientgetHash(Shardingkey)%n•十亿级计数•用Redis存储1亿计数需要多大空间?RedisRedisscountRedis•用户纬度增长(e.g用户关注ershard数,粉丝数,微博数)计数服务存储演化setgetClientClient•百亿级计数(CounterserviceHash(Shardingkey)%nHa
8、sh(Shardingkey)%n2.0)最近6个月•微博纬度增长(e.g微博转6个月前发评论数)RedisscountRedisRedisCounterservRedisRediserShardiceShard•MySQL热点更新响应不够稳定MySQLMySQLMySQL计数服务存储演化setClientget•千亿级计数(Counterservice3.0)Hash(Shardingkey)%n•内存tabl
此文档下载收益归作者所有