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的插入性能非常高,所以它们的目标客户群是那些存在频繁交易的系统用户
::...
免责声明:
当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
内容版权归原作者所有;
本人对内容的有效性/合法性不承担任何强制性责任.
若有不妥, 欢迎评注提醒:

或是邮件反馈可也:
askdama[AT]googlegroups.com



自怼圈/年番新

DU21.7
关于 ~ DebugUself with DAMA ;-)


关注公众号, 持续获得相关各种嗯哼:
zoomquiet


粤ICP备18025058号-1
公安备案号: 44049002000656 ...::