千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > HBase系列常见面试题汇总---HBase的MVCC多版本并发机制

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

来源:千锋教育
发布人:syq
时间: 2022-08-12 10:52:44 1660272764

  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 返回写入成功,数据可读。

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

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

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT