10gen公司CEO Dwight Merriman
Dwight Merriman在1996年与人共同创办DoubleClick公司,并担任首席技术官一职十年。Dwight Merriman的目标是构建一个类似于Google App Engine或是微软Azure的“云平台”。
Dwight Merriman和他的团队,包括ShopWiki的创始人Eliot Horowitz参加了在纽约10gen启动MongoDB的仪式。现在该公司除了担任该开源项目的主要运营者之外,还提供支持、培训和咨询服务。 10gen在旧金山举办了第二届开发者大会,Merriman在上午的大会做了主题演讲,主要介绍了MongoDB的起源,并解释了为何要建立这样的数据 库。
“在2007年底,当时的想法是构建一个用于开发、托管并具有自动缩放Web应用程序的在线服务”,谈到MongoDB诞生之目的 时,Merriman介绍道。“但是不同于Google App Engine的是,这项服务完全建立在一个开放源代码的软件平台之上。”因此,在关注了Google Bigtable架构很长一段时间后,Merriman和他的团队注意到,尚没有一个开源的数据库平台适合这种服务,这兴许是个机会。
“我们意识到很多现有的数据库并不真正具备‘云计算’的特性。例如弹性、可扩展性以及易管理性。这些特性能够为开发者和运营者带来便利,而MySQL还不完全具备这些特点。
因此,Dwight Merriman以及他的团队的目标是构建一个全新的数据库。新的数据库将会放弃大家所熟悉的关系数据库模型,且是适合现代网络应用并基于分布式的平台。 高度事务性的系统可以帮助解决一些棘手的问题,同时还支持云计算架构的伸缩性。Merriman解释到。经过一年的不断努力,这个数据库已经比较完善。他 们将它设计为具有为“云计算服务”潜力的数据库。而且还会不断的完善,因为MongoDB本身就是一个开源数据库。
在开源的、面向文档的数据库中,MongoDB经常被誉为具有RDBMS功能的NoSQL数据库。MongoDB还带有交互式shell,这使得访问其数据存储变得简单,且其对于分块的即装即用的支持能够使高可伸缩性跨多个节点。
据悉,MongoDB的API是JSON对象和JavaScript函数的本地混合物。通过shell程序开发人员可与MongoDB进行交互,即 允许命令行参数,或通过使用语言驱动程序来访问数据存储实例。这里不存在类JDBC驱动程序,这意味着开发人员不必处理ResultSet或 PreparedStatement。
而速度是 MongoDB 的另外一个优势,主要是由于它处理写入的方式:它们存储在内存中,然后通过后台线程写入磁盘。
“由于用户不容易在大规模环境下作分布式的链接,并且在分布式环境下很难做快速的大规模部署,因此,用户需要一些辅助的东西”,Memmiman解释道。
最后他表示同样重要的是为了限制数据库的事务语义你可以使用分布式事务。但当你在1000台机器上运行时它不会那么快。例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。
【编辑推荐】