RethinkDB 1.12 发布

阅读数:844 2014 年 3 月 31 日

话题:语言 & 开发架构

RethinkDB 是一款开源的分布式数据库,用于存储 JSON 文档,可以很容易地扩展到多台机器。它有一门令人愉快的查询语言,支持表连接和 group 等真正有用的查询,并且安装简单、易于学习。

近日,RethinkDB 1.12 发布,这是迄今为止最重大的发布之一。它带来了超过200 项功能增强,其中包括:

  • 极大地简化了 map/reduce 和聚合命令
  • 缓存经过重大改进,消除了长期稳定性和性能方面的局限
  • 支持 ARM 架构
  • 新增四个用于对象和字符串操作的 ReQL 命令
  • 许多 Bug 修复、稳定性增强和性能提升

新版本删除了 group_by 和 grouped_map_reduce 命令,代之以一个更强大的新命令 group。该命令将文档序列分组,其后链接的任何命令都是在每个分组上单独调用,而不是在序列的所有文档上。而且,链接的命令不局限于内置的聚合命令,可以是任何一个或一系列命令。此外,除了已有的聚合命令 count、sum 和 avg 外,1.12 版本还增加了 min 和 max。读者可以进一步阅读,了解更多关于group 命令和新的map/reduce 基础架构的信息。

1.12 版本对缓存的基础架构进行了许多改进。对于用户而言,最大的变化是他们不需要手动为表设置缓存大小了,RethinkDB 会根据不同表的使用情况和系统可用内存空间动态地调整缓存大小。另外,为了帮助解决用户报告的各种稳定性问题,RethinkDB 还做了许多用户看不到的修改。

四个月前,David Thomas贡献了一个拉拽请求,其中包含了在 ARM 上编译和运行 RethinkDB 所需要的修改。经过几个月的测试和各种修复,该请求已经并入了 RethinkDB 的主干。不过,ARM 支持是试验性的,还有一些问题需要解决。

另外,新版本还增加了几个用于字符串和对象操作的命令,如用于大小写转换的 downcase 和 upcase、用于分隔字符串的 split 和以编程方式从键 - 值对创建 JSON 对象的 object。读者可以从API 文档中了解更多相关信息。

最后,RethinkDB 1.12 还在性能和稳定性方面做了许多改进,如在 RethinkDB 的 Web 服务器上增加了压缩支持,增加了自动化性能回归测试改进了并行数据处理代码等。

这里需要特别提醒一下,上述功能增强中有一项破坏性修改,即用 group 代替 group_by 和 grouped_map_reduce。用户在升级时需要针对这项修改调整应用程序,详情见1.12 迁移指南。再者,升级之前务必先迁移数据

读者可以从这里下载试用。


感谢包研对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。