Hbase行级事务模型

Hbase事务原子性保证

Hbase的数据首先会写入WAL,再写入Memstore。写入Memstore异常的话很容易实现回滚,因子只要保证WAL的原子性即可,每个事务只会产生一个WAL单元,这样就可以保证其原子性。

Hbase事务一致性保证

Hbase事务隔离性保证

写写并发控制

实现写写并发控制,只需要在写入或者更新之前先获取行锁,如果获取不到,就说明有其它的线程已经获得了该锁,就需要不断的重试等待或者自旋等待(自旋锁),直至其他线程释放该锁。拿到锁以后开始写数据,写完数据以后释放该行锁即可。

批量写写并发控制

一个线程同时更新一个Region中的多行记录,使用的方法是行锁,两阶段锁协议:

1.获取所有待写入或者更新行记录的行锁。

2.开始执行写入或者更新操作。

3.写入完成以后再同一释放所有行记录的行锁。

注:不能更新一行就是释放一个行锁,这样容易形成事务的死锁。

读写并发控制

当有两个事务更性同一行数据,当第二个事务更新到一半的时候过来一个读操作,读请求就会读到一个不一致的数据。Hbase采用的MVCC机制,主要分为两个步骤:

1.为每一个写入或者更新分配一个Region级别自增的序列号

2.为每一个读请求分配一个已完成的最大写事务系列号

Hbase事务持久性保证

Hbase事务持久性保证可以理解为WAL持久化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值