MongoDB SHARE

1,972 views

Published on

MongoDB in Taobao

0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,972
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

MongoDB SHARE

  1. 1. 1 MongoDB分享 部门: DBA 日期:2010.11
  2. 2. 2 MongoDB 特性 • 有哪些好消息? – 基于文档的存储引擎 – 读写分离以及高可用 – 自动分片
  3. 3. 3 行存储 vs 文档存储 • 行存储与关系型数据库 – 元数据独立存储 • 先有表结构,后有数据 • 节省存储空间 – MySQL DDL • 锁表时间长 • 磁盘IO消耗
  4. 4. 4 行存储 vs 文档存储 • 文档存储与NoSQL – 元数据绑定文档存储 • 先有数据,后有文档结构 • 存储空间消耗较大 – MongoDB • 文档结构由client api调用决定 • 不消耗额外IO
  5. 5. 5 行存储 vs 文档存储 • MongoDB文档存储的特点 – BSON (Binary JSON) • string, integer, double, date, boolean, null • array, BSON object – 索引 • Multikeys • 空间索引
  6. 6. 6 行存储 vs 文档存储 • 文档示例 { "_id" :ObjectId("4cd8b8286ba3f67def22d10f"), "name" : "taofang", "gender" : "male", "age" : 18, "birth" : null }
  7. 7. 7 MongoDB Replication • Master Slave – 主动落后 • Replica Sets – 自动切换 • Replica Pairs(淘汰) – 自动切换
  8. 8. 8 MongoDB Replication • Replica Set角色 – Primary节点 – Secondary节点(健康、恢复、虚弱) – Arbiter节点
  9. 9. 9 MongoDB Replication • Replica Set数据同步(OpLog)
  10. 10. 10 MongoDB Replication • Replica Set数据同步(OpLog)
  11. 11. 11 MongoDB Replication • Replica Set的一致性 – 写入:可以强制同步到Secondary节点 – 读取:可以强制读取Primary节点 • 目前不支持W+R>N
  12. 12. 12 MongoDB Auto-Sharding • Sharding架构
  13. 13. 13 MongoDB Auto-Sharding • Sharding的复杂架构
  14. 14. 14 MongoDB Auto-Sharding • Sharding如何切分数据 – database, collection, document – sharding key(路由字段) – chunk(一个范围内的document)
  15. 15. 15 MongoDB Auto-Sharding • splitChunk(在Shard上分裂) – (min, max)加锁 – 更新config server(原子性) • 添加(min, R] • 添加(R, max) • 删除(min, max) – 删除(min, max),解锁 – 同步(min, R]和(R, max)
  16. 16. 16 MongoDB Auto-Sharding • moveChunk(Shard A -> Shard B) – 拷贝数据 • 将A上的chunk数据拷贝到B • 记录拷贝过程中,chunk上的数据变化 – 修改chunk属主 • 锁住A上的chunk更新,在B上apply更新 • 删除chunk在A和B上的属主信息 • 更新config server上的属主信息,并解锁 – 删除A上的chunk
  17. 17. 17 Others • 监控 – Http Interface • http://10.232.31.46:28015/ – Mongo shell command • db.currentOp(), db.serverStatus() • db.printReplicationInfo(), db.printShardingStatus() – mongostat • QPS, connection • memory, lock
  18. 18. 18 Others • 备份和修复 – fsync写锁全备 – mongodump在线备份,不能保证一致性 – 只能在database级别进行修复
  19. 19. 19 Others • 安全性 – 单节点支持认证 – Replica Set支持认证 – Sharding不支持认证
  20. 20. 20 Others • Client api – 获取整个集群的拓扑图 – 自动failure over • Online Shell – http://www.mongodb.org/
  21. 21. 21 Q&A ? ??? ????? ??????? ?????????

×