mongoDB的读书笔记(04)_【Replica】(04)_Rollback、回头看看Write Concern的絮叨

mongoDB中的Rollback

mongoDB没有transaction

Rollback是什么意思?在关系数据库中都有这个意识,也就是不commit那么就可以rollback。rollback代表一个还原,即不把真实的操作写入数据库,保持不变。。。等等。
首先需要声明一下,mongoDB的单独一个instance的操作中是没有transaction控制的,写入,那么就写进去了,update,那么就update进去了,删除,那么就删除咯。没有先做再commit的这个过程。所以对于复杂的transaction控制的事件,比如一个交易平台的转账,就要借助two phrase commit或者更强的方式来进行了,这种模式也够讨论一阵的,后面再说,先把Replica搞完。所以,所以,mongoDB中的Rollback指的其实是Replica中的Rollback。

Replica中的Rollback是什么

试想一个场景:
rollback的场景
有一个三节点的Replica,id分别为1,2,3,关系为Primary,Secondary,Secondary

① Primary接收Writes过来的数据

此时Primary接收过来的数据是1,2,3

② 两个Secondaries从Primary的oplog中读取命令,进行操作

同时,两个Secondaries把自己的数据也同步为1,2,3

③ Primary又接收了新的数据

此时Primary接收的最新数据是1,2,3,4

④ Primary突然间Step Down了

注意,这个时候,Primary最新更新的数据4还没有同步到其他两个Secondaries中去

⑤ Replica关闭所有的写操作,选举

由于Primary挂掉,集群短时间关闭写操作开始竞

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值