HBase的一致性
Hbase是一个强一致性数据库,不是“最终一致性”数据库,官网给出的介绍:
“Strongly consistent reads/writes: HBase is not an “eventually consistent” DataStore. This makes it very suitable for tasks such as high-speed counter aggregation.”
这里要先提一下分布式系统的CAP原理:
- Consistency(一致性), 数据一致更新,所有数据变动都是同步的
- Availability(可用性), 好的响应性能
- Partition tolerance(分区容错性) 可靠性
定理:任何分布式系统只可同时满足二点,没法三者兼顾。
忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。
HBase是CAP系统中的CP系统。
首先来理解下一致性
对于一致性,可以分为从客户端和服务端两个不同的视角。
-
从客户端来看,一致性主要指的是多并发访问时更新过的数据如何获取的问题。从服务端来看,则是更新如何复制分布到整个系统,以保证数据最终一致。一致性是因为有并发读写才有的问题,因此在理解一致性的问题时,一定要注意结合考虑并发读写的场景。
-
从客户端角度,多进程并发访问时,更新过的数据在不同进程如何获取的不同策略,决定了不同的一致性。对于关系型数据库,要求更新过的数据能被后续的访问都能看到,这是强一致

本文介绍了HBase作为强一致性数据库的特性,分析了其在CAP理论中的定位,并从客户端和服务端视角探讨了一致性概念。HBase通过原子操作、Region服务器的单一服务以及Zookeeper的一致性保障来实现强一致性,即使在故障转移时,也优先保证一致性而非可用性。
最低0.47元/天 解锁文章
568

被折叠的 条评论
为什么被折叠?



