hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ian Varley <ivar...@salesforce.com>
Subject Re: HBase and Consistency in CAP
Date Fri, 02 Dec 2011 20:15:48 GMT

Yeah, those are great places to go and learn.

To fill in a bit more on this topic: "partition-tolerance" usually refers to the idea that
you could have a complete disconnection between N sets of machines in your data center, but
still be taking writes and serving reads from all the servers. Some "NoSQL" databases can
do this (to a degree), but HBase cannot; the master and ZK quorum must be accessible from
any machine that's up and running the cluster.

Individual machines can go down, as J-D said, and the master will reassign those regions to
another region server. So, imagine you had a network switch fail that disconnected 10 machines
in a 20-machine cluster; you wouldn't have 2 baby 10-machine clusters, like you might with
some other software; you'd just have 10 machines "down" (and probably a significant interruption
while the master replays logs on the remaining 10). That would also require that the underlying
HDFS cluster (assuming it's on the same machines) was keeping replicas of the blocks on different
racks (which it does by default), otherwise there's no hope.

HBase makes this trade-off intentionally, because in real-world scenarios, there aren't too
many cases where a true network partition would be survived by the rest of your stack, either
(e.g. imagine a case where application servers can't access a relational database server because
of a partition; you're just down). The focus of HBase fault tolerance is recovering from isolated
machine failures, not the collapse of your infrastructure.


On Dec 2, 2011, at 2:03 PM, Jean-Daniel Cryans wrote:

Get the HBase book:

And/Or read the Bigtable paper.


On Fri, Dec 2, 2011 at 12:01 PM, Mohit Anchlia <mohitanchlia@gmail.com> wrote:
Where can I read more on this specific subject?

Based on your answer I have more questions, but I want to read more
specific information about how it works and why it's designed that

On Fri, Dec 2, 2011 at 11:59 AM, Jean-Daniel Cryans <jdcryans@apache.org> wrote:
No, data is only served by one region server (even if it resides on
multiple data nodes). If it dies, clients need to wait for the log
replay and region reassignment.


On Fri, Dec 2, 2011 at 11:57 AM, Mohit Anchlia <mohitanchlia@gmail.com> wrote:
Why is HBase consisdered high in consistency and that it gives up
parition tolerance? My understanding is that failure of one data node
still doesn't impact client as they would re-adjust the list of
available data nodes.

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message