MongoDB释放2.4版本:692更新及8大得意之作
在2012年9月发布了MongoDB 2.2版本之后,10gen公司于2013年3月19日释放了最新的MongoDB 2.4版本。自发行以来,MongoDB的弱数据结构模型、易扩展、开源一直广受数据工作者的喜爱;而在 DB-Engines排行榜上,MongoDB更是长居NoSQL数据库之首,当之无愧的万年人气王!
对比上个版本2.2,10gen对MongoDB做了692处改善,详情请见 修改文档。而在这些更新中,10gen列举了新版本的8个得意之作,下面就一睹为快:
基于哈希的分片(Hash-based Sharding) :MongoDB 2.4增加了基于哈希的分片功能,构建在之前基于范围的分片之上。使用哈希shard key,允许用户以一个简单的方式获得更好的负载和数据分布。
固定数组(Capped Arrays) :在文档中申明一个固定大小的数组。在一个$push操作中,用户可以给其指定一个$slice修饰符,这将截取数组最后的N个对象。你同样还指定一个排序,MongoDB将先会对数组进行排序,然后再截取。
文本搜索(Text Search):文本搜索一直是MongoDB上最为需求的特色之一。文档索引将提供15种语言的词干(stemming)和分词(tokenization)进行本地及实时文本搜索。更多的详情以及文本搜索的实现,请见 博客。
Geo功能 :MongoDB 2.4引入了GeoJSON支持,当前2dsphere支持Point、 LineString和Polygon 的GeoJSON 形状。.
更快的计数:在多数情况下,MongoDB 2.4中的计数功能将比之前版本快一个数量级。10gen对查询执行引擎做了多重优化以提高其常见访问模式,比如单一的B-tree存储桶(bucket):如果第一个和最后一个进入存储桶的对象匹配一个计数范围内,那么中间的对象肯定也如此,这样就避免了对这个范围内的对象做逐一的检查。
工作集分析器(Working Set Analyzer) :资源使用是MongoDB集群运行的关键所在。在MongoDB 2.4中,10gen添加了工作集大小分析,可以轻松的完成对资源使用率的测量。它可以告诉你在最近的15分钟里内存页的需求情况,所以你可以不间断的对资源使用情况进行跟踪。如果15分钟内的数据量需求的内存接近资源的满载,那么是时候该给你的集群增加更多的性能。
新的V8引擎(New V8 Engine) :MongoDB 2.4改变了MapReduce、$where和shell中使用的JavaScript。新的版本使用V8引擎(出自Google Chrome),改善了并发性操作。
安全性(Security) :MongoDB 2.4中安全方面两项重要的提高——Kerberos Authentication和Role Based Access Control。Kerberos Authentication属于MongoDB Enterprise的组成部分,允许企业级的用户管理系统整合,而Role Based Access Control则提供了更精细的权限管理。