[翻译]MongoDb 架构(MongoDb Architecture)

转自:http://blog.dufei.cc/index.php/archives/25/

NOSQL最近成为了一个炙手可热的话题(作者发表在2012年,话说对于现在来说,NOSQL已经如火如荼了)。大规模架构的web服务开发中对于高扩展性和半结构化数据的要求推动着数据库往NOSQL方向转变。最近几年已经有了不少NOSQL数据库解决方案。我在过去的blog中(不是我的blog,作者blog挺卡的已经介绍过基于分布式系统理论的NOSQL,同时也介绍了一些挺好的产品,比如CouchDB和CassanDra/HBase。

上周五,我非常幸运的在一个技术会议上见到了10gen的Jared Rosoff。我们俩对于MongoDB的技术架构做了一些探讨,我觉得我们聊得东西挺有价值的,所以在这里贴出来分享给大家。

首先MongoDb的易用性和底层架构的易懂性让我非常吃惊。下面是一些简单的管理命令--开启和关闭MongoDb server。

  1. #安装MongoDB
  2. mkdir /data/lib
  3. #开启 server
  4. .../bin/mongod #这个时候数据就存储在了/data/db那
  5. #开启命令行shell
  6. ..../bin/mongo
  7. >show dbs
  8. >show collections
  9. #删除collection(删除表)
  10. >db.person.drop()
  11. #通过命令行shell关闭mongod server
  12. >use admin
  13. >db.shutdownServer()

译者注:其实启动mongod可以用 -f conf.txt这种模式启动,启动的参数放到conf.txt中比如

  1. #配置启动参数conf.txt
  2. dbpath=....my_work_space/mongodb01/dbs
  3. logpath=...my_work_space/mongodb01/logs/mongod.log
  4. bind_ip=127.0.0.1
  5. directoryperdb=true
  6. port=10001
  7. mongodb01/bin/mongod -f conf.txt

相对于关系型数据库的主要不同点

mongodb相对于关系型数据库的主要不同点如下:

  • 不同与关系型数据库的数据扁平化数据格式(2维的数据格式),mongodb的表(collection)是可以嵌套的,是多维的。也就是说mongodb的表里面可以嵌套子表、数组、哈希表等。
  • 不同于关系型数据库中存储在表中的数据必须是全部格式统一,mongodb的collection可以插入任意格式的数据。
  • mongodb查询没有join操作。鼓励不墨守成规的组织数据,保持数据一致性的重任交给了程序员。
  • mongodb没有事物(transaction)这一说。原子性只保持在了document(可以理解为一行)级别。也就是说不可能出现更新一行的时候更新不完整的情况。
  • mongodb没有隔离(isolation),client端读取的任何数据都有可能已经被并行的client修改过了。

通过去除掉这些传统关系型数据库支持的特性后,mongodb可以更轻量级、更灵活的完成大数据处理。

查询处理

mongodb属于一种面向文档的数据库。在查询处理模块中,数据被组织成了JSON文档,nd()

				
时间: 2024-08-05 02:38:35

[翻译]MongoDb 架构(MongoDb Architecture)的相关文章

深入剖析 MongoDB 架构

近日,软件工程师Ricky Ho的在 他的博客里发表了一篇关于MongoDB架构( MongoDB Architecture)的博文,虽然这是一个听起来感觉很宽泛的话题,但是作者在文章中确实对MongoDB由内至外的架构进行了剖析.本文截取了其文章中的几张重点架构示意图进行简要描述. 1.MongoDB数据文件内部结构 MongoDB在数据存储上按命名空间来划分,一个Collection是一个命名空间,一个索引也是一个命名空间. 同一个命名空间的数据被分成很多个Extent,Extent之间使用

Linux 小知识翻译 - 「架构」(arch)

这次,聊聊「架构」这个术语. 在PC相关的文档中,是不是经常看到「x86架构」这个短句.但是对于这句话,是不是总感到有种似懂非懂的感觉. 架构的英语是「architecture」.这里面有「建筑」,「建筑风格」,「构造」的意思.实际上架构这个词在很多领域中都有「构造」的意思. 其实,即使在电脑的世界里,「架构」也有被用在多种场合.软件设计中会使用「架构」这个术语,硬件中也会使用「架构」这个术语. 使用时会涉及到多个方面,很难用一句话来概括「架构」的意思,但基本含有之前提到的「构造」,「设计风格」

MongoDB (四) MongoDB 数据模型

在 MongoDB 中的数据有灵活的模式.在相同集合中文档并不需要有相同的一组字段或结构的公共字段的集合,文档可容纳不同类型的数据. MongoDB设计模式的一些考虑 可根据用户要求设计架构. 合并对象为一个文件,如果要将它们放在一起.否则分开它们(但确保不需要连接). 重复数据(有限),因为磁盘空间便宜(相比计算时间). 不需要连接写入,而是读. 优化架构是最常见的用例. 在模式上做复杂的聚集. 例子 假设一个客户端需要一个数据库设计,设计一个博客网站,来看看 RDBMS 和 MongoDB

SOA EDA 事件驱动架构 (Event-Driven Architecture,EDA) 简介

事件驱动架构 (Event-Driven Architecture,EDA) 简介 可以从两个方面来理解 EDA: EDA 是一种侧重于以生成/消费为基础的异步通信的架构模式.这主要对照于传统的基于线程的同步系统. EDA 是一种以事件 (event)为核心,提供事件产生,路由,消费已经结果回调等机制的架构模式. 简单地说, 面向服务架构 (Service-Oriented Architecture, SOA) 是一种 IT 架构策略,其基于面向服务的概念之上.自从 2002 开始为大家熟知以来

每篇半小时1天入门MongoDB——2.MongoDB环境变量配置和Shell操作

上一篇:每篇半小时1天入门MongoDB——1.MongoDB介绍和安装 配置环境变量 Win10系统为例 右键单击“此电脑”——属性——高级系统设置——高级——环境变量,添加C:\Program Files\MongoDB\Server\3.0\bin;.注意:要以;隔开各种变量. 这样的话就可以直接在CMD命令窗口中输入mongo 表示环境变量设置成功,并已经连接到默认数据库test中. 我们可以输入mongod --help来查看相关的帮助信息 C:\Users\zouqi>mongod

微内核架构(Microkernel Architecture)

微内核架构(Microkernel Architecture) 微内核架构有时也被成为插件架构模式(plug-in architecture pattern),通常用于实现基于产品的应用,如Eclipse和Firefox.然而许多公司也将内部的业务软件做成软件产品,提供版本.发版说明和插件特性.微内核架构模式通过插件向核心应用添加额外的功能,提供了可扩展性和功能的独立和分离. 模式描述 微内核架构包含两部分组件:核心系统(core system)和插件模块(plug-in modules).应用

什么是架构(Architecture)?

软件系统的架构将系统描述为计算组件及计算组件之间的交互. —— Mary Shaw  软件体系结构:一门初露端倪学科的展望 架构是以组件.组件之间的关系.组件与环境之间的关系为内容的某一系统的基本组织结构,以及指导上述内容设计与演化的原理. —— IEEE的定义 某个软件或计算机系统的软件架构是该系统的一个或多个结构,每个结构均由软件元素.这些元素的外部可见属性.这些元素之间的关系组成. —— 美国 卡内基梅隆大学软件研究所 什么是架构(Architecture)?,布布扣,bubuko.com

[MongoDB] 安装MongoDB配置Replica Set

url:http://blog.csdn.net/hf81970/article/details/19643639 MongoDB的环境主要包括StandAlone,Replication和Sharding. StandAlone:单机环境,一般开发测试的时候用. Replication:主从结构,一个Primary,多个Secondary,可能会有Arbitry. Primary挂掉之后,会选举出一个Secondary作为Primary,与zookeeper类似. Arbitry上面不存数据,

【MongoDB】MongoDB的安装教程

1,MongoDB简介 MongoDB也是一种数据库,只不过它既不是关系型数据库,也不是非关系型数据库(NoSQL),而是一种介于关系型数据库和NoSQL之间的一种数据库.如果说非关系型数据库是轻量级的,具有存取速度快的特点.关系型数据库是重量级的,具有存储数据量大,数据安全,查询统计方便等特点.那么MongoDB就有非关系型数据库存储数据快的特点,又有关系型数据库存储数据量大.安全等特点. MongoDB是基于分布式文件存储的数据库 MongoDB是介于NoSQL和关系型数据库之间的一款产品

搭建LNAMP环境(六)- PHP7源码安装MongoDB和MongoDB拓展

上一篇:搭建LNAMP环境(五)- PHP7源码安装Redis和Redis拓展 一.安装MongoDB 1.创建mongodb用户组和用户 groupadd mongodb useradd -r -g mongodb -s /sbin/nologin -M mongodb 2.下载mongodb源码包,并将源码包放到/usr/local/src/目录下下载页面:https://www.mongodb.com/download-center?jmp=nav这里用的是 mongodb-linux-x