[ 
https://issues.apache.org/jira/browse/HBASE-22918?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16915934#comment-16915934
 ] 

Sean Busbey commented on HBASE-22918:
-------------------------------------

yes I believe it is possible to get a stale read at t5, provided that the RS 
has also not attempted to heartbeat. the heartbeat to master's period is how we 
bound that time (hbase.regionserver.msginterval which defaults to 3 seconds)

 

Note that the client doesn't even need a persistent connection to RS0, it just 
needs its local cache of region information from hbase:meta to still say things 
are on RS0.

> RegionServer violates failfast fault assumption
> -----------------------------------------------
>
>                 Key: HBASE-22918
>                 URL: https://issues.apache.org/jira/browse/HBASE-22918
>             Project: HBase
>          Issue Type: Bug
>            Reporter: ranpanfeng
>            Priority: Major
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> hbase 2.1.5 is tested and veriflied seriously before it will be deployed in 
> our production environment. we give NP(network partition) fault a very 
> important care. so NP fault injection tests are conducted in our test 
> environment. Some findings are exposed.
> I use ycsb to write data  into table SYSTEM:test, which resides on 
> regionserver0; during the writting, I use iptables to drop any packet from 
> regionserver0 to zookeeper quorums. after
> a default zookeeper.session.out(90'), regionserver0 throws 
> YouAreDeadException after retries  to connect to zookeeper on 
> TimeoutException error. then, regionserver0 suicides itself, before 
> regionserver0 invokes completeFile  on WAL, the active master already 
> considered regionserver0 has dead pre-maturely, so invokes recoverLease to 
> close the WAL on regionserver0 forcely.
> In trusted idc, distributed storage assumes that the error are always 
> failstop/failfast faults, there are no Byzantine failures. so in above 
> scenario, active master should take over the WAL on regionserver0 after 
> regionserver0 is suicided successfully.  According to lease protocol, RS
> should suicide in a lease period, and active master should take over the WAL
>  after a grace period has elapsed, and invariant "lease period < grace 
> period" should always hold.  in hbase-site.xml, only on config property 
> "zookeeper.session.timeout" is given,  I think we should provide two 
> properties:
>   1. regionserver.zookeeper.session.timeout
>   2. master.zookeeper.session.timeout
> HBase admin then can tune regionserver.zookeeper.session.timeout less than 
> master.zookeeper.session.timeout. In this way, failstop assumption is 
> guaranteed.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to