分析师解读内存数据库MemSQL

日期: 2012-06-20 作者:Curt Monash 来源:TechTarget中国 英文

本周数据库业界探讨最火热的话题就是MemSQL,究竟是不是“旧瓶装新酒”引发了诸多的辩论,同时也引发了究竟是产品技术重要还是DBA重要的疑问。网络中有一些关于MemSQL的介绍,基本上都是来自官方文档。在本文中,数据库行业的著名独立分析师Curt Monash也发表了他对MemSQL的看法。

  MemSQL到底是什么?

  • 内存关系型数据库
  • 目前只发布了单机版,透明分片以及基本复制特性正在开发,预计今年秋天发布
  • SQL-92的子集
  • 兼容MySQL(SQL覆盖问题除外)

  MemSQL的性能

  • 读性能比memcached差10%左右
  • 写性能比memcached强20%左右
  • 一台64核、1/2 TB的机器上能跑到120万条插入每秒
  • 同样条件下,20分钟之内能加载5亿条记录

  MemSQL的公司情况

  • 一共有15名员工
  • 部分客户已将MemSQL投入生产环境
  • 目前GA两个版本,免费版限制10 GB RAM,企业版无限制,按照数据库大小收费

  关于MemSQL的讨论主要集中在性能方面,包括:

  • 数据通过哈希表和跳转表(skip lists)进行组织。MemSQL认为跳转表在多核上的扩展性非常好
  • 查询模式可以编译成C++
  • MVCC/无读锁
  • 轻量级写锁
  • 可调整持久性,你可以fully durable的跑MemSQL,也可以设一个buffer size来限定可承受的交易数据量

  其实将查询进行预编译很难说是一个创新,也不是业内的独一份。此前包括QlikTech、StreamBase以及ParAccel都做过类似的尝试。而MemSQL的特色在于:

  • 编译成只要你想读就可以读的C++
  • 参数化,如果一个查询中包括一系列的参数,那么它会存储起来以备将来运行更多其它参数
  • 持久性,如果服务器宕机,存储的编译查询不会丢失

  每个查询只占几KB的空间,在早期MemSQL的客户中,他们最多存储不会超过几千个查询模式。因此MemSQL对于编译这些查询会造成的影响还是表示非常乐观的,而使用LRU算法来释放空间的方式可能不会去考虑。

  MemSQL的持久性使用预写入日志到一个磁盘(传统或固态硬盘),同时发送快照到其他磁盘的方式。持久性的设计是连续的,但是在full-durability场景中是否也是就不清楚了。

  其他一些值得注意的技术细节包括:

  • MemSQL可以运行在多温度环境下,通过DDL手动控制。也就是说,较新的数据会放到MemSQL中,旧数据放入到MySQL中
  • 有一点我认为是最佳实践,MemSQL团队也秉承了这一理念,就是在两个或者多个服务器RAM中得到确认后,要第一时间提交写入
  • 并行Group By,这个MemSQL的团队引以为豪
  • MemSQL不进行数据压缩,他们认为OLAP负载中才需要数据压缩
  • MemSQL的插入性能非常高,所以它们的目标客户群是那些存在频繁交易的系统用户

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐