hbase 一致性 问题思考

本文探讨了HBase如何实现强一致性,并分析了其与HDFS的关系。指出HBase的强一致性主要源于每个Region仅由一台RegionServer管理,通过WAL日志在故障转移时保证一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

搜索了下 hbase 和 paxos .说 hbase 本身的 hdfs 和 paxos 无关.

后来又发现一篇文章浅谈Hbase 的强一致性:

    从一开始就知道hbase是CAP中的CP系统,即hbase是强一致性的.我原来一直以为hbase的强一致性是因为底层的HDFS写入时,必须所有副本都写入成功才能返回.最近才想明白,hbase之所以是CP系统,实际和底层HDFS无关,它是CP系统,是因为对每一个region同时只有一台region server为它服务,对一个region所有的操作请求,都由这一台region server来响应,自然是强一致性的.在这台region server fail的时候,它管理的region failover到其他region server时,需要根据WAL log来redo,这时候进行redo的region应该是unavailable的,所以hbase降低了可用性,提高了一致性.设想一下,如果redo的region能够响应请求,那么可用性提高了,则必然返回不一致的数据(因为redo可能还没完成),那么hbase就降低一致性来提高可用性了.

   

   这个和我的理解时一致的:

    hbase 的强一致性分为两部分来说.
    数据分为两部分 

           1.文件存储

            2.hbase region 本身有 lsm 的内存数据.

       对于第一部分,hdfs 的数据有个特点不可变. 对于不可变的数据好处是不用考虑更新时的数据一致性. 而分布式的数据一致性本身的由来也是因为各个不同的人想改同一个值(paxos 是 大家都想对"决议"进行修改,使其变成某个值)
 meta 数据的修改时通过 zk 的,所以一致性也得到了保证.

      对于第二部分数据,由于只有一个 region,只有一个操作者.故也没啥一致性问题.


   另外split时 由于直接报错,故也保证了一致性



通过分布式系统框架+ 幂等重试 实现最终一致性 (支付宝和 ebay 架构

保证分布式系统数据一致性的6种方案)


附录:

HBase Region分裂 原理,过程


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值