NoSQL数据库 MongoDB 2.0.0-RC0 版本发布
fmms 13年前
<p>今天<span class="wp_keywordlink_affiliate">MongoDB</span>刚刚发布了其第一个2.* 版本:<span class="wp_keywordlink_affiliate"><a title="查看 MongoDB2.0 的全部文章" href="/misc/goto?guid=4958187373887246214" target="_blank">MongoDB2.0</a></span>.0-RC0,也发布了2.0版本的<a href="/misc/goto?guid=4958187374627518242">Release Notes</a>,其中很多新功能和改进非常值得期待。下面NoSQLFan为大家细数。</p> <p><img title="NoSQL数据库 MongoDB 2.0.0-RC0 版本发布" alt="NoSQL数据库 MongoDB 2.0.0-RC0 版本发布" src="https://simg.open-open.com/show/8ed2c2149ce4dde71c603ba1e105c6bd.jpg" border="0" height="246" width="502" /></p> <h3>1.增加<span class="wp_keywordlink_affiliate">压缩</span>命令</h3> <p>以前只能通过repair整个数据库的方式来进行数据压缩,而2.0版本增加了一个 <a href="/misc/goto?guid=4958187375361844957">compact 命令</a> ,使你可以针对Collection和其索引进行压缩。</p> <h3>2.并发增强</h3> <p>当写操作不能在内存中完成(要写的部分未命中实际内存)时,需要加上写锁。(<a href="/misc/goto?guid=4958187376097307055">SERVER-2563</a>)目前已经在下面操作上实现:(<span style="color:#008000;">翻译是否正确?</span>)</p> <ul> <li>Updates by _id</li> <li>Removes</li> <li>Long cursor iterations</li> </ul> <h3>3.减少客户端线程消耗</h3> <p>MongoDB会为每个客户端分配一个独立线程,当并发量太大时,线程消耗的内存就不能忽略了。在新的版本中,MongoDB调整了每个线程占用的内存量。这个值将会小于系统的Stack Size或者设置成1MB。</p> <h3>4.索引效率增强</h3> <p>2.0版本对索引进行了<a href="/misc/goto?guid=4958187376842400762">重大的性能改进</a>,现在同样的索引,你可能可以节约25%的内存并提升25%的性能。</p> <h3>5.安全性</h3> <p>sharding的集群目前也提供了安全性支持</p> <h3>6.Replica Sets的改进</h3> <ul> <li>提供了优先级设置功能,你可以给每一个节点设置优先级,在重新选举主机的时候,优先级将会被纳入选举策略之中。</li> <li>提供了数据中心可知性,2.0版本中,节点了解自己及其它节点当前是对处于哪一个数据中心的。你可以在写操作中指定级别,以使一些重要信息能够同步的复制到远端的IDC。</li> <li>提供w : “<span class="wp_keywordlink_affiliate"><a title="查看 majority 的全部文章" href="/misc/goto?guid=4958187377572244404" target="_blank">majority</a></span>”的写选项,在以前我们可以设置写到几台机器就返回成功,2.0版本会提供一个majority的选项,意为同步到集群中的大多数机器。</li> <li>新增了一个reconfigure的选项,当集群中有些节点宕机后(但是大部分的节点还是活跃的),你可以使用此选项来调整新的配置。参见<a title="Reconfiguring a replica set when members are down" href="/misc/goto?guid=4958187378313134496">Reconfiguring a replica set when members are down</a>。</li> <li>目前如果Primary节点找不到一个能够跟上它速度的Secondary(optime延长10秒以内),那么Primary将不能stepdown,当然你也可以强制使其stepdown。更多信息参见<a title="Forcing a Member to be Primary" href="/misc/goto?guid=4958187379041244166">Forcing a Member to be Primary</a>。</li> <li>shutdown操作增强,如果一个Primary执行shutdown操作,它会检查是否有一个Secordary能够跟上它的速度,如果没有,它会先stepdown,等有Secondary的optime延长能够在十秒内再关闭。</li> <li>当一个Secondary在运行repair或者<span class="wp_keywordlink_affiliate"><a title="查看 compact 的全部文章" href="/misc/goto?guid=4958187379777859079" target="_blank">compact</a></span>操作时,Secondary会转变状态为“recovering”,这样客户端就不会在其繁忙进行repair或compact的时候访问它了。</li> </ul> <h3>7.地理位置索引</h3> <ul> <li>支持多个位置索引的建立,可以是在一个array中也可以是文档嵌入。详见<a href="/misc/goto?guid=4958187380500016952">Geospatial documentation</a></li> <li>地理位置索引还支持多边形查询,支持一些常规的多边型。详见<a href="/misc/goto?guid=4958187381270617144">这里</a></li> </ul> <h3>8.Journaling日志增强</h3> <ul> <li>目前在64位平台上,Journaling选项为默认开启,需要通过–nojournal 启动参数才能关闭。</li> <li>Journaling日志中使用了压缩,以减少磁盘IO。</li> <li>提供了<a href="/misc/goto?guid=4958187381995951186">–journalCommitInterval</a>选项以自由配置group commit的时间间隔,默认是100ms。</li> <li>提供了新的getLastError {<tt>j: true</tt>}选项来使客户端<a href="/misc/goto?guid=4958187382727225175">等待group commit完成</a>后才返回。</li> <li>你可以临时禁止Journaling日志,然后通过copy数据文件的方式进行热备。详见<a href="/misc/goto?guid=4958187383467196837">这里</a>。</li> </ul> <h3>9.增加<span class="wp_keywordlink_affiliate"><a title="查看 ContinueOnError 的全部文章" href="/misc/goto?guid=4958187384203891626" target="_blank">ContinueOnError</a></span>选项</h3> <p>当进行批量插入时,如果设置了ContinueOnError选项,那么中间某个插入操作出问题不会影响后续的插入操作。</p> <h3>10.增加新的正则表达式支持</h3> <h3>11.修改了system 这个Collection的结构</h3> <p>来源:<a href="/misc/goto?guid=4958187374627518242">www.mongodb.org</a><br /> 转自:<a href="/misc/goto?guid=4958187385607087006" rel="nofollow">http://blog.nosqlfan.com/html/2920.html</a> <br /> <br /> <span style="font-weight:bold;">MongoDB</span>简介</p> <div id="p_fullcontent" class="detail"> <p><span style="font-weight:bold;">MongoDB</span>是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。 Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。</p> <p>它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:</p> <ul> <li>面向集合存储,易存储对象类型的数据。 </li> <li>模式自由。</li> <li>支持动态查询。 </li> <li>支持完全索引,包含内部对象。 </li> <li>支持查询。 </li> <li>支持复制和故障恢复。 </li> <li>使用高效的二进制数据存储,包括大型对象(如视频等)。</li> <li>自动处理碎片,以支持云计算层次的扩展性</li> <li>支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。</li> <li>文件存储格式为BSON(一种JSON的扩展)</li> <li>可通过网络访问</li> </ul> <p>所谓“面向集合”(Collenction-Orented),意思是数据被分组存储在数据集中,被称为一个集合(Collenction)。每个 集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定 义任何模式(schema)。<br /> 模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。<br /> 存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各中复杂的文件类型。我们称这种存储形式为BSON(Binary Serialized dOcument Format)。</p> <p>MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB</p> <p>在32位模式运行时支持的最大文件尺寸为2GB。</p> <p>MongoDB把数据存储在文件中(默认路径为:/data/db),为提高效率使用内存映射文件进行管理。<br /> <br /> 项目地址:<a href="/misc/goto?guid=4958183898586439931">http://www.mongodb.org/</a><br /> 相关文档:<a href="http://www.open-open.com/doc/search?q=mongodb&ft=all&od=0">http://www.open-open.com/doc/search?q=mongodb&ft=all&od=0</a></p> </div>