开源的分布式数据库,RethinkDB 1.12发布
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迁移指南。再者,升级之前务必先迁移数据。
读者可以从这里下载试用。
来自:http://www.infoq.com/cn/news/2014/03/rethinkdb1.12-publish