网站大量收购闲置独家精品文档,联系QQ:2885784924

Mongodb技术分享研究报告.pptx

  1. 1、本文档共69页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Mongodb分享 李响 2015-07-17 1. 背景 2. MongoDB入门 3. 索引 4. 复制 5. 分片 6. 管理与监控 7. 使用优化案例 主要内容 1.背景 1.1 从集中式到分布式 1.2 从sql到nosql 1.3 分布式一致性问题 1.4 CAP和BASE理论 1.1 从集中式到分布式 集中式的问题: 计算、存储能力瓶颈 单点问题 分布式的问题: 通信异常 网络分区 三态 节点故障 一致性 1.2 从SQL到NoSQL SQL 建立在严格的关系模型基础之上,通常支持复杂的事务操作,提供严格的数据一致性、完整性约束,并且支持关联查询等。 复杂事务,关联查询等特性影响读写性能,同时限制了关系型数据库的分布式扩展能力。 NoSQL non-relational not only sql 是对SQL的补充: 高并发读写 海量数据 高可扩展和高可用性 还无法替代SQL: 复杂事务,严格的一致性 读写实时性 join 与SQL不同,NoSQL没有统一的标准,种类繁多(key-value,列式,文档,图),根据业务选择适合的 1.3 分布式一致性问题 强一致性 弱一致性 … 最终一致性 鱼和熊掌:分布式系统中数据一致性和系统性能之间的关系 1.4 CAP和BASE理论 CAP C:Consistency A:Availability P:Partition?tolerance 分布式系统中,P是基础,所以 一般只能在C、A之间进行取舍。 MongoDB处于哪一部分? BASE Basically?Available,Soft?state,Eventually?consistent 2.MongoDB入门 2.1 什么是MongoDB 2.2 存储引擎与版本选择 2.3 mongo shell 2.4 mongodb数据模型 2.5 数据类型 2.6 bson 2.7 GridFS 2.8 模式设计 2.9 CRUD 2.1 什么是MongoDB MongoDB是面向文档的,无模式(schema-less)的,支持二级索引,支持冗余、自动故障转移,支持数据分片、负载均衡,易扩展,能为海量数据提供支撑的非关系型数据库。 MongoDB不支持跨多个文档的复杂事务,但保证单文档操作原子性。 MongoDB不支持联接(join)。 MongoDB不支持MVCC(3.x wiredTiger引擎支持)。 2.2 存储引擎 版本2.8(3.0)开始支持插件式存储引擎 MMAPv1 WiredTiger(since 3.0) 2.2 存储引擎-MMAPv1(1) 读写锁 不支持MVCC Version 2.2 : 只支持进程级锁,一个Mongod实例一个锁。 2.2 ≤ Version 2.8 : 支持库级锁,一个db一把锁。 3.0.0 ≤ Version 支持 collection 级别的锁。 内存 内存映射文件 交由操作系统管理,不能 手动配置管理 无强制内存量要求 缓存索引、热数据等 2.2 存储引擎-MMAPv1(2) Journal日志 Journal日志,是MongoDB的预写日志WAL(类似Mysql的Redo log)。 因为Journal日志文件是磁盘上连续分配的空间,MongoDB在运行时通过顺序追加的方式记录,通过顺序IO来改善写性能。同时,后台会定时刷写Journal日志文件以将写操作持久化到数据文件。通过这种两次写的方式,当Mongodb因为一次非正常退出(比如崩溃),重启mongod进程后会根据journal下的文件来恢复数据以达到数据一致,防止数据丢失。同时,一次正常的退出时MongoDB会刷写并删除journal目录下所有文件。 journal除了故障恢复的作用之外,还可以提高写入的性能,通过批量提交(batch-commit)的方式减少IO次数,一般默认100ms刷新一次到journal,可通过下面参数修改: mitIntervalMs 值越低,刷新输出频率越高,journal的持久性也就越高(故障意外情况下丢失的数据越少),但同时意味着更多的磁盘IO。 2.0以上版本默认开启的,可以通过nojournal = true 或--nojournal关闭,但建议开启。 Journal文件是以“j._”开头命名的,且是append only的,如果1个journal文件满了1G大小,mongodb就会新创建一个journal文件来使用,一旦某个journal文件所记载的写操作都被使用过了,mongodb就会把这个journal文件删除。通常在journal文件所在的文件夹下,只会存在2~3个journal文件,除非你使用mongodb每秒都写入大量的数据。 使用 smallf

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档