MongoDB新版本特性和未来规划
MongoDB 2.4已经发布,该版本增加了一些新特性,如文本搜索、基于哈希的分片、更好的地理空间功能、支持GeoJSON以及一些性能和工具方面的提升。我们还和10gen讨论了MongoDB接下来的路线图。
一些关键的提升如下:
- 引入了文本搜索,现在是一个测试功能,支持15种语言的词干和断词
- 基于哈希的分片,用于数据交叉传播时不能轻易预测任何自然分片键的情况
- 地理空间索引和GeoJSON支持
- 安全提升——新的模块化身份认证系统、与Kerberos集成以及基于角色的访问控制
- 一些性能提升,最重要的一项是针对计数和聚合等专门场景的提升
- 使用V8作为Mongo Shell内部默认的JavaScript引擎(代替了SpiderMonkey),进而提升了基于JavaScript的操作的性能和并发性
- 用于监控集群状态的其他指标
10gen还介绍了同2.4版一起发布的一款企业版MongoDB。
为了了解新特性和将来规划的更多信息,我们联系了10gen的产品市场总监Kelly Stirman。
Kelly解释了为什么集合级别的锁可能对MongoDB没有意义:
版本2.2对锁做了改进,通过降低锁竞争为写吞吐量带来了实质性的好处。David Mytton写了一篇非常好的与该主题相关的文章。
除了2.0和2.2版本中所提供的改进,MongoDB 2.4并没有包含任何额外粒度的锁。我们正在考虑在2.6版本中引入文档级别的锁。锁产生的提升已经足够了,集合级别的锁可能不会再带来其他重要的提升了,因此文档级别的锁可能是下一个方向。
关于何时使用基于范围的分片而不是新的基于哈希的分片,Kelly说:
什么时候使用基于范围的分片呢?如果你的应用程序基于一个分片键范围请求数据,那么这些查询会被路由到合适的分片,通常只有一个分片,特殊情况下可能有一些分片。在一个使用了基于哈希分片的系统中,同样的查询会将请求路由到更多的分片,可能是所有的分片。理想情况下,我们希望查询会被路由到一个单独的分片或者尽可能少的分片,因为这样的扩展能力要比将所有的查询路由到所有的分片好。因此,如果你非常理解自己的数据和查询,那么基于范围的分片可能是最好的选择。
在MongoDB 2.4中计数速度最高可以提升20倍,同时聚合框架平均要快3到5倍。Kelly解释说计数性能的提升受益于MongoDB中B树遍历性能的一些提升——基于索引的低基数计数是最大的提升。聚合框架性能的提升实际上是对MongoDB内部实现做的很多小变动引起的,它们一起带来了具大的好处。
接下来将会增加哪些企业特性:
MongoDB 2.4在安全和监控领域实现了一些重大举措,但是对于将来的版本我们还有很多计划。我们将沿着认证、授权和审计三个维度进行安全控制。将来版本的MongoDB将继续关注这些领域,同时我们还会继续增强我们为MongoDB提供的工具。MongoDB监控服务(MMS)在MongoDB社区已经非常流行,有超过15,000位用户并在持续增长。我们将继续对MMS进行投资,为用户提供免费的云工具,同时提供本地产品作为我们企业订阅服务的一部分。
如果你想了解更多与MongoDB 2.4新特性相关的信息,可以阅读发行说明和概述。
查看英文原文:MongoDB Gets Better Security, Text Search, Performance Improvements – What’s Next?
来自:http://www.infoq.com/cn/news/2013/04/mongodb-2-4