阅读更多

2顶
0踩

数据库

转载新闻 MongoDB 2.0.0-RC0 版本发布

2011-08-26 17:53 by 资深编辑 luiang1018 评论(3) 有5174人浏览
今天MongoDB发布了其第一个2.* 版本:MongoDB 2.0.0-RC0,其中很多新功能和改进非常值得期待。下文将为大家细数这些功能及改进。



MongoDB是一个基于分布式文件存储的数据库开源项目,由C++语言编写。旨在为Web应用提供可护展的高性能数据存储解决方案。常用于高流量网站、在线游戏网站和搜索引擎的大规模数据管理和分类。

1.增加压缩命令

以前只能通过repair整个数据库的方式来进行数据压缩,在2.0版本增加了一个compact命令,使你可以针对单独的collection及其索引进行压缩。

2.并发增强

当写操作不能在内存中完成(要写的部分未命中实际内存)时,需要加上写锁(SERVER-2563)。目前已经在下面操作上实现:
  • Updates by _id
  • Removes
  • Long cursor iterations
3.减少客户端线程消耗

MongoDB会为每个客户端分配一个独立线程,当并发量太大时,线程消耗的内存就不能忽略了。在新的版本中,MongoDB调整了每个线程占用的内存量。这个值将会小于系统的Stack Size或者设置成1MB。

4.索引效率增强

2.0版本对索引进行了重大的性能改进,现在同样的索引,你可以节约大概25%的内存并提升25%的性能。

5.安全性

Sharding集群目前也提供了安全性支持。

6.Replica Sets的改进

  • 提供了优先级设置功能,你可以给每一个节点设置优先级,在重新选举主机的时候,优先级将会被纳入选举策略之中。
  • 提供了数据中心可知性,2.0版本中,节点了解自己及其他节点当前是处于哪一个数据中心的。你可以在写操作中指定级别,以使一些重要信息能够同步地复制到远端的IDC。
  • 提供w : "majority"的写选项,在以前我们可以设置写到几台机器就返回成功,2.0版本会提供一个majority的选项,意为同步到集群中的大多数机器。
  • 新增一个reconfigure的选项,当集群中有些节点宕机后(但是大部分的节点还是活跃的),你可以使用此选项来调整新的配置。参见Reconfiguring a replica set when members are down
  • 现在如果Primary节点找不到一个能够跟上它速度的Secondary(optime延长10秒以内),那么Primary将不能stepdown,当然你也可以强制使其stepdown。更多信息参见Forcing a Member to be Primary
  • 增强shutdown操作以便减少interruption,如果对一个Primary执行shutdown操作,它会检查是否有一个Secordary的optime在10秒内以便能够跟上它的速度;否则拒绝关闭。如果Secordary不可用,它会先stepdown,等待Secondary完全赶上(不多于一分钟)。
  • 当一个Secondary在运行repair或者compact操作时,Secondary会转变状态为“recovering”,这样客户端就不会在其繁忙进行repair或compact的时候访问它了。
7.地理位置索引

  • 支持多个位置索引的建立,可以是在一个array中也可以是文档嵌入。详见Geospatial documentation
  • 地理位置索引还支持多边形查询,支持一些常规的多边型。详见这里
8.Journaling日志增强

  • 目前在64位平台上,Journaling选项为默认开启,需要通过–nojournal 启动参数才能关闭。
  • Journaling日志中使用了压缩,以减少磁盘IO。
  • 提供–journalCommitInterval选项以自由配置group commit的时间间隔,默认是100ms。
  • 提供新的getLastError {j: true}选项来使客户端等待group commit完成后才返回。
  • 你可以临时禁止Journaling日志,然后通过copy数据文件的方式进行热备。详见这里。
9.增加ContinueOnError选项

当进行批量插入时,如果设置了ContinueOnError选项,那么中间某个插入操作出问题不会影响后续的插入操作。

10.增加新的正则表达式支持

11.修改了system这个Collection的结构

更多详细参见:2.0版的Release Notes

下载地址:http://www.mongodb.org/downloads
  • 大小: 4.7 KB
来自: NoSQLFan
2
0
评论 共 3 条 请登录后发表评论
3 楼 obullxl 2011-08-27 10:31
HBase.
2 楼 caoyangx 2011-08-27 08:27
继续关注,已经尝试,很不错。
1 楼 icanfly 2011-08-27 08:26
great!!

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 一个RMI的分布式应用的实例

    Java是一门简单而且实用的语言(高级语言) 花些时间去学习是值得的。

  • 分布式架构基础:Java RMI详解

    分布式架构基础:Java RMI详解 GitHub: https://github.com/jayknoxqu/rmi-example RMI简介 ​ Java RMI,即 远程方法调用(Remote Method Invocation),一种用于实现远程过程调用(RPC)(Remote procedure call)的Java API, 能直接传输序列化后的Java对象和分布式垃圾收集。它的实现依赖于Java虚拟机(JVM),因此它仅支持从一个JVM到另一个JVM的调用。 rmi架构图 rmi的实现 (1

  • JAVA-RMI的分布式应用

    这些日子一直在研究SOAP--WebService的东东,发现和JAVA-RMI很相似,他们两个都是基于RPC(Remote Procedure Call)风格。如果想学习SOAP-WebService的朋友,建议先看看JAVA-RMI的知识,自己动手做个HelloWorld,体会一下。一定会对你理解SOAP-WebService有帮助的。 一.先解释一下什么...

  • [原创]使用RMI编写客户端-服务器应用程序,实现分布式计算

                                                                                                                                                                          作者:bluesky35(蓝天)开发环境: Windows2000

  • 利用RMI实现JAVA分布式应用

    利用RMI实现JAVA分布式应用 Java RMI (Remote Method Invocation 远程方法调用)是用Java在JDK1.1中实现的,它大大增强了Java开发分布式应用的能力。Java作为一种风靡一时的网络开发语言,其巨大的威力就体现在它强大的开发分布式网络应用的能力上,而RMI就是开发百分之百纯Java的网络分布式应用系统的核心解决方案之一。其实它可以被看作是RPC的J

  • 用RMI实现基于Java的分布式计算(1)

    为什么80%的码农都做不了架构师?>>> ...

  • RMI和SWING,Java web start技术的综合应用

    摘 要 波音产品结构管理树是一个基于RMI,SWING和Java web start等多种技术的一个窗口应用程序,现已投入使用。论文第一章对波音产品结构管理树的历史开发过程,开发碰到的难题,和怎样解决这些难题进行了阐述,并且对波音产品结构管理树进行了简单的介绍。第二章介绍了开发所采用的RMI技术(远程方法调用技术),对它的优点,架构进行了简单的介绍。第三章介绍了开发所采用的另一个关键技术SWING

  • 《并行与分布式计算》实验六——Java RMI编程

    这篇博文一个多月前就发表过,但因当时在课程上该实验还未结束提交而删除了;对老师教学造成的不便深感歉意;写这些不是为了什么,也知道自己写的不好,只是记录自己的学习心历路程,同时也当作一个笔记,将来翻看的时候,也能有所收获。 一、实验目的与要求 实验目的:理解JavaRMI的体系结构,熟悉Java RMI程序的编写。 实验要求:请独立完成本实验。 二、实验内

  • 分布式-远程部署的RMI

    参考HeadFirst java 看分布式,环境win 7 接口代码如下: import java.rmi.Remote; import java.rmi.RemoteException; public interface MyRemote extends Remote{ public String sayHello()throws RemoteException; } 服务实现类

  • java分布式对象(RMI+部署使用RMI的程序)

    【0】README1)本文文字转自 core java volume 2, 旨在学习 java 分布式对象的相关知识; 2) RMI 的实例程序为原创; 3) RMI部署步骤的测试用例,参见 http://blog.csdn.net/pacosonswjtu/article/details/50705258【1】知识背景1)每过一段时间, 程序员社区就开始考虑“无所不在的对象”作为所有问题的解决

  • Java分布式处理技术(RMI,JDNI)

    Java分布式处理技术(RMI,JDNI)        2010-08-15 11:232740人阅读评论(5)收藏举报 目录(?)[+] RMI的基本概念 什么是RMIRMI的用途RMI应用程序分类 创建RMI应用程序步骤RMI接口和类简介JNDI基本概念JNDI应用程序结构RMI与JNDI集成学习总结 Java分布式处理技术 1.1 RMI的基本概念

  • JAVA RMI分布式原理和应用

            RMI(Remote Method Invocation)是JAVA早期版本(JDK 1.1)提供的分布式应用解决方案,它作为重要的API被广泛的应用在EJB中。随着互联网应用的发展,分布式处理任务也随之复杂起 来,WebService也得到普遍的推广和应用。        在某些方面,例如跨语言平台的分布式应用,RMI就显得力不从心了。在实际的应用中,是采用WebServic...

  • 分布式技术之RMI

    分布式技术之RMI

  • 基于Java RMI和Swing的三子棋游戏

    我的GitHub

  • Java实验: 基于RMI的分布式议程服务

     第1章 实验目的 使用Java RMI 构建一个分布式议程服务(agenda service)。不同的客户应能连接到这一共享的议程服务,并查询、添加和删除议程中的会晤(meeting)安排。服务程序应具备新用户注册、清除某一用户所有会晤安排等管理功能。   第2章 实验基本原理 实验基于RMI基本通信原理, 按照RMI协议的特性实现远程方法与远程对象调用。   实验工具与环境:...

  • 分布式架构基础Java RMI详解

    分布式架构基础:Java RMI详解 RMI简介 ​ Java RMI,即 远程方法调用(Remote Method Invocation),一种用于实现远程过程调用(RPC)(Remote procedure call)的Java API, 能直接传输序列化后的Java对象和分布式垃圾收集。它的实现依赖于Java虚拟机(JVM),因此它仅支持从一个JVM到另一个JVM的调用。 rmi架构图 rmi的实现 (1) 直接使用Registry实现rmi 服务端: public class Regis

Global site tag (gtag.js) - Google Analytics