Home:ALL Converter>Can not understand why Hbase not A in CAP

Can not understand why Hbase not A in CAP

Ask Time:2018-07-17T14:45:28         Author:Jack

Json Formatter

I read a document said that Hbase is Consistency and Partition in CAP theory.

But I can not understand why Hbase is not A? I think Hbase can always keep service available, so why not A?

My understanding of Hbase NOT A: When one new row was inserted into Hbase, because Hbase is immediate consistent, it needs to wait HDFS finish the 3 replicas, but during this replica sync time the new row can not be seen, that's why Hbase is not A. But I'm not sure about this.

Author:Jack,eproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/51374856/can-not-understand-why-hbase-not-a-in-cap
Haijie Wu :

Generally speaking, a CP system means that when 'network partition' happened, the system will try to ensure consistency (or 'linearizability' from some blogs) instead of making the system 'available'. \n\nNetwork partition essentially means that the cluster is partitioned to two or more parts and they can't communicate with each other due to network failures. During the time of this network issue, if a write request was made to one side of the cluster (a region server), the system will not accept the write until the issue is resolved. Thus this essentially make the system not really 'available' when network partition happened. In HBase, network partition can result in region in transition and those regions affected will not be able to accept read/write. This is the reason why some post may consider HBase as a CP system. For a system favoring availability, read will not be blocked when system is in a partitioned state.\n\nIn real world, availability in CAP has a very specific meaning. It's slightly different from our general meaning of being available. In case of a small network partition, if a quorum based system can quickly remove the bad portion of the cluster from the system, it is possible to ensure consistency while only having a brief period of down time like seconds (or potentially even smaller). So they can still be considered available in general term because they quickly recovered from the failure. But in strict term, if you want to be consistent during a network partition, you will need to wait for the issue to be resolved before you can serve other read requests (and thus not available). ",
2018-10-16T01:15:09
yy