I'm interested in the answer to this question to get a clear understanding
of the data consistency guarantee of HBase.

if I write  a row key --- column into hbase region server, I see that in
HRegion.put() it calls the HLog.append(), which ultimately calls
DFSoutputStream.sync(),
let's say at this moment, 1 out of the 3 replica data nodes goes down, I
guess the sync() would throw an IOException, and the put() would fail?

but if I continue to call put(), would HDFS find out that the replica is
down, and try to relocate the HLog onto another set of replica? if so, what
happens to the old set? during the interim, is it possible that the 2
replicas that were successfully written could be visible to clients? (for
example, the current region server dies and a new one comes up and picks up
the HLog from 1 of the 2 replicas)

Thanks a lot
Yang

Reply via email to