全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

HBase系列常见面试题汇总---HBase的MVCC多版本并发机制

发布时间:2022-08-12 10:52:44
发布人:syq

  MVCC(Multi Version Consistency Control),简单地说,是一种通过数据的多版本来解决读写一致性问题的解决方案。我们知道 HBase 是会保留多版本的数据的,每次写入都会产生一个新版本的数据,每次读取都会默认读最新版本的数据,那么 HBase 是在并发请求的场景下是怎么控制这些多版本的呢?下面是对HBase的MVCC多版本并发机制的具体介绍。

MVCC多版本并发机制

  如图所示,LinkedList 每个元素里面有两个属性:

  writeNumber:即 Region 级别的事务 ID,每个客户端请求都会分配一个事务 ID。

  completed: 数据写入是否完成,初始状态为 Flase,数据写入成功后会更新为 True。

  客户端写入事务请求到达 Region,先写入到 LinkedList 中,10 是当前事务的 ID,False 表示当前事务还在进行中,数据还不可读。

  Client 将数据写入 memstore 和 WAL ,写入完成即可结束事务。

  将 completed 更新为 true,表示事务结束。

  同时,Client 会按顺序遍历 LinkedList 里的元素,若 completed:true 则将 readPoint 更新到这个位置,说明此处的数据是可读的,遍历到 completed:false 则停止。

  此时数据写入还不会返回成功,即事务 10 还是不可读的状态,因为需要保证时序,client2 和 3 还在写事务 7 和 9 没有完成,当前可读的数据只到事务 6 的位置。等到 client2 和 3 完成事务并将 readPoint 更新到 10,则事务 10 返回写入成功,数据可读。

  更多关于大数据培训的问题,欢迎咨询千锋教育在线名师,如果想要了解我们的师资、课程、项目实操的话可以点击咨询课程顾问,获取试听资格来试听我们的课程,在线零距离接触千锋教育大咖名师,让你轻松从入门到精通。

  注:本文部分文字和图片来源于网络,如有侵权,请联系删除。版权归原作者所有!

相关文章

明道、teambition、Tower.im、Worktile、trello的功能都有哪些?

明道、teambition、Tower.im、Worktile、trello的功能都有哪些?

2023-10-14
反欺诈中所用到的机器学习模型有哪些?

反欺诈中所用到的机器学习模型有哪些?

2023-10-14
强化学习中on-policy与off-policy有什么区别?

强化学习中on-policy与off-policy有什么区别?

2023-10-14
为什么交叉熵可以用于计算代价?

为什么交叉熵可以用于计算代价?

2023-10-14

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取