mongoDB的读书笔记(05)_【Sharding】(02)_分片的一些概念和小细节

分片的一些概念与细节

Primary Shard

在Replica set中有Primary和Secondary的概念,那么在Sharding中其实也有一个Primary的概念。

任何一个mongoDB中都有一个未分区的整体DB的collection在某一个Shard中。如下图。

Collection1在ShardA中有一部分Chunks在ShardB中也有一部分Shards,而在ShardA 中却有一个Collection2保存整体的ShardA+ShardB的Collection1的和。

Config Servers的读写操作

何时去读

一个mongos(从app发出的mongo Shard 的routing的service)启动或者重启的时候。

当一个Chunck移动完了,用最新的metadata更新完config servers的时候。

何时去写

当要去切分Chunks的时候。(切分完毕后肯定是要写入最新的metadata)

当在Shards之间移动Chunks的时候。(移动以后所有的位置变化了,肯定也要写入最新的metadata)

Config Servers的一些有效性

之前说过Config Servers需要3个。主要是为了高可用性和高冗余性来进行的设计。那么当这3个servers的状态有变化的时候,整体Shards的处理也会随之发生变化。

当1-2个Config Server挂掉的时候,Config Servers的metadata就变成了read-only的状态,和Replica的Primary挂掉的时候效果类似,Replica的整个集群如果没有了Primary整个集群就变成了ReadOnly的状态,而这里的的ReadOnly指的是metadata的状态。你可以继续读写Shards的数据,但是因为metadata不能改变了,那么依照上面的何时去写中写的那样,Chunks的切分以及移动就不会发生了。

悲催的情况,当你的3个Config Servers都挂掉的话,其实也不必太担心。只要你一直不重启mongos你还是可以继续使用这个Shards的,但是如果你在3个Config Servers挂掉后,在这三个Config Servers恢复之前重启了mongos那么你的Shards集群也就无法使用了。从现象上其实可以看出,这些数据应该是持久化在内存中的,一旦重启内存数据消失那么也就失效了。

所以没有metadata的集群是无法运行的。所以metadata的备份以及使用就很重要。相对于Shards中的大量的实际data来说,metadata还是很轻便和易于使用的,也就是说metadata相对来说是低载入成本,而且metadata对于集群来说也不是必要(比如上面说的挂了1-3个的时候集群在特定条件下也是可以使用的),所以,Config Server的备份还是相对简单的。

つづく???

时间: 2024-10-11 13:09:09

mongoDB的读书笔记(05)_【Sharding】(02)_分片的一些概念和小细节的相关文章

mongoDB的读书笔记(via3.x)(00)_【概览】(01)_mongoDB3.0的一些变化

先啰嗦啰嗦,真的没想到,mongoDB能这么快推出3.x,我的2.6的读书笔记还没有写完呢,3.0就杀到了,咋办...头疼中... 看了一下3.0的介绍,我觉得还是直接上3.x的读书笔记吧,2.x的东东和3.x的比较着来,这样老的延续的东西也能温习,新的东西也可以马上知道,而且3.x的x到底到几的时候才能变成相对bug fixed版本还不知道,所以一边看着一边看bug fix过程吧.3.0的变化是从底层的数据存储上面发生的变更,存储方式的api可以使得今后增加更多的底层解决方案,根据不同的需求来

读书笔记:移动的帝国_日本移动互联网兴衰启示录

新年的时候立了一个旗帜,2017年读30本书,其中包括5本外文原版书.现在4月份了,终于完成一本..主席说,读完一本书,写一写读书笔记会印象更深刻.嗯,实践是对某种认知的最好认识.那就立刻行动起来:) 这本书断断续续阅读,根据微信读书记录,前后共花了5个小时..这5个小时就是实大实在屏幕前阅读的时间,微信阅读的使用感受之一,认识到原来读一本书的时间投入是这么少.碎片化时间果然"害人啊",原来一个下午就可以看完一本书,为什么我们读书还是那么少呢. 那其实这本讲日本移动互联网的书在豆瓣评分

读书笔记:腾讯传_中国互联网公司进化论

2017年的时候立了一个旗帜,2017年读30本书,其中包括5本外文原版书.现在4月份了,终于完成第二本<腾讯传>.. 主席说,读完一本书,写一写读书笔记会印象更深刻.嗯,实践是对某种认知的最好认识.那就立刻行动起来:) 这本书其实主要是花费两个通宵看完的,快毕业了,睡不着又不想起来写论文(其实应该起来写论文的啊摔!),就在床上看这本书,其实很好看(=看成功的记录写实总是很容易的),根据微信读书记录,前后共花了5个+小时..这5个+小时就是实大实在屏幕前阅读的时间,这样,我读完了这本书,有挺多

mongoDB的读书笔记(via3.0)(05)_【Sharding】(03)_关于Shard Keys与Hash的理论知识小絮叨

紧急出个差,但是又不能不继续写,少写点,先把Shard key和Hash的一些小概念继续写一写. Shard Keys mongoDB的Sharding最重要的就是Shard Key.用Shard Key进行分片,并且按照指定的Chunk的大小进行Chunk的分割和移动(后面细说).Shard Key的一些特点: Shard Key不可以是multikey index 何为mutikey index?途中的addr[]这个数组就是所谓的mutikey index.Shard key可以是复数个字

mongoDB的读书笔记(via3.0)(00)_【概览】(02)_mongoDB3.0中的mongod启动方式小试牛刀

mongod启动 本来想写Replica的非测试模式的集群架构的,但是实在是手痒痒,把mongoDB的3.0给download下来了,看了一两眼文档后决定还是先大概写一点点关于启动的话题,之后写Replica的时候基本上就用mongoDB 3.0的方式+YAML的 配置方式来做了. mongod利用mmapv1启动 这个是default的启动方式.mongod的启动参数多如牛毛,本来想有空总结一下的,我勒个去的,有些估计这辈子也用不到的场景也不知道如何写,等我再考虑一下再说吧. 准备配置文件 s

mongoDB的读书笔记(04)_【Replica】(05)_初探Replica set副本集的搭建 By Test模式

Replica set Deployment On Test Mode 为啥是测试模式 实战 先絮叨絮叨操作系统 在一台机器上创建模拟5个节点 进入非db连接模式 建立5个节点的test script 启动所有的节点 配置节点 进入一个节点 配置Replica的config 进行初始化 check心跳和log 查看Replia的详细 查看Secondary Replia的详细 写数据实验 Primary写入 Secondary查看 Replica set Deployment On Test M

《构建之法》读书笔记05

团队有一些共同的特点:有一致的集体目标,成员之间有各自的分工,合作完成任务.团队一开始可能是"一窝蜂模式",都想写出好的软件,但是没有各自的分工,一般不会这种模式不会存活太久.慢慢会演化成其他模式,比如"主治医师模式",本来是不错的模式,但是在学生身上退化为了一个学生干活,其余打酱油的情况.还有比如明星模式,社区模式,业余剧团模式等,当然其中不乏一些好的模式,秘密团队,交响乐团模式,功能团队模式等. 学校里面的软件工程专业的学生可能是"写了再改模式&quo

【读书笔记 - Effective Java】02. 遇到多个构造器参数时要考虑用构建器

类有多个可选参数的解决方案:1. 重叠构造器模式可行,但是当有许多参数的时候,客户端代码会很难编写,并且仍然较难以阅读.2. JavaBeans模式,调用一个无参构造器来创造对象,然后调用setter方法来设置每个必要的参数,以及每个相关的可选参数. 缺点:构造过程被分到了几个调用中,在构造过程中JavaBean可能处于不一致的状态.阻止了把类做成不可变的可能,需要程序员确保线程安全.3. Builder模式,模拟了具名的可选参数. 模式 优 劣 重叠构造器 写法最简单 多参数时候难读.难写.难

正面管教读书笔记 10 你的性格对孩子性格的影响

正面管教读书笔记 10 你的性格对孩子性格的影响 正面管教 作者:简·尼尔森(Jane Nelsen) 第10章 你的性格对孩子性格的影响 书中通过"生活态度取向",将我们分为:安逸型,控制型,取悦型,力争优秀型. 个人看法:这种分类并不专业.不正确,模棱两可比较多. 好的一方面,是从总体看(不要一个个看),还是一种举例的方式,描述正确的方向是什么. 四种生活态度取向 取向 最担心的 避免倾向 安逸 情感和生活的痛苦与压力:他人的期望:受人迫胁 追求安逸:寻求别人的关照:让别人感到舒适