文本描述
互联网和大数据带来的挑战
公司每个月的数据增长没有几个T,都不好意思跟人打招呼
SSD的价格依然是机械硬盘的数倍,容量越大,价格差距越大
SSD的寿命非常有限
内存和SSD依然很贵
写入性能目前通过单节点的持续写入,多节点只读,一般能满足需求(如阿里云的PolarDB)
绝大多数互联网用户对在线服务的访问偏向于随机读
比如新闻资讯、搜索引擎、舆情监控、电商类商品检索等
对大量随机读的优化,目前没有很好的解决方案(目前只能增加内存或建立额外的索引缓解)
非随机读的场景,往往允许离线进行处理,一般不要求事务,暂时还可以忍
海量用户带来的海量随机访问
存储引擎
数据库
数据库领域的探索没有止境
为什么从引擎层优化
●目前的存储引擎底层算法,针对随机读较多、内存受限的场景,还有很大的
改进空间
○块压缩对随机访问很不友好
○压缩率太低
●引擎层的修改不触及用户现有数据库的使用逻辑,更加透明
●引擎层更加通用,可以适应各类数据库产品,应用范围更广,也能和现有的
数据库产品充分整合,设计各类解决方案
TerarkDB 对MySQL 的改进方式
MySQL
InnoDBMyISAMMyRocks
TerarkDB
●MySQL 以RocksDB 作为存储引擎是发
挥了RocksDB 的LSM 随机写速度快的
优势,也是Facebook 目前使用的主要方
法(MySQL on RocksDB, 简称MyRocks)
●TerarkDB 基于RocksDB 的接口,将自己
的算法适配到了MyRocks 中,进一步支
持了MySQL 数据库。