【IT168 专稿】2016年5月14日,第七届中国数据库技术大会(DTCC 2016)的最后一天,大雨也挡不住大家的热情。作为国内数据库与大数据领域最大规模的技术盛宴,在为期三天的会议中,大会围绕MySQL、NoSQL、Oracle、缓存技术、云端数据库、智能数据平台、大数据安全、数据治理、大数据和开源、大数据创业、大数据深度学习等领域的前瞻性热点话题与技术展开了深入探讨,这场饕餮盛宴接近尾声。14日上午内存数据库进展专场,360基础架构组存储负责人陈宗志分享了大容量redis存储方案 pika。
看过《宠物精灵》的小伙伴应该都爱死皮卡丘了吧。没想到如今360也收入了这只“小精灵”。这样的画风大家有没有觉得萌萌哒呢。陈宗志表示,pika确实是根据皮卡丘的叫声命名的。而且目前已经开源(github 地址:https://github.com/baotiao/pink)。大家在碰到“大容量”时可能会遇到很多问题,360也如此。为了解决这些问题,pika便应运而生,大家一起看一下360到底遇到了哪些问题?又是如何解决的呢?
当用户使用Redis的内存大小超过50G、80G时,可能会遇到恢复时间长、主从切换代价大、缓冲区易满、硬件成本高等许多问题,pika就是针对这些问题的一个解决方案。陈宗志表示不是说pika比redis性能更优,相反其性能远不如redis。但是,在某些“大容量”场景下,确实可以解决许多redis解决不了的问题。从一开始pika的定位就不是给开发人员使用的,所以pika完全兼容redis协议,用户不需要修改任何代码就可以将服务迁移至 Pika。
Pika架构主要组成:
网络模块 pink
基础架构团队开发网络编程库,支持pb、redis等协议。陈宗志表示,pb协议比redis协议更方便。但redis内容可见,pb则封装起来,在这方面略有不便。支持单线程模型、多线程worker模型,基于kv接口实现多数据结构。其具体实现如图所示:
线程模块
存储引擎nemo
·Pika 的存储引擎, 基于Rocksdb 实现. 实现了Hash, List, Set 等数据结构
·Rocksdb 启动只需要加载log 文件
·Rocksdb 大量使用的本地磁盘
日志模块 binlog
·可以顺序写文件, 通过Index + offset 进行同步点检查
·解决了缓冲区小的问题
·支持全同步 + 增量同步。
最后,陈宗志表示:pika优劣共存,除了性能上比redis低一些,其优势十分明显。比如容量大、加载db速度快、备份速度快、性价比高。
▲更多大会资讯,请查看大会专题:http://www.it168.com/redian/16DTCC/