hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Zhihong Yu (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-5179) Concurrent processing of processFaileOver and ServerShutdownHandler may cause region to be assigned before log splitting is completed, causing data loss
Date Wed, 18 Jan 2012 11:39:40 GMT

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

Zhihong Yu commented on HBASE-5179:
-----------------------------------

{code}
+   * Dead servers under processing by the ServerShutdownHander. Map of
+   * ServerType to set of being processed dead servers
+   */
+  private final Map<ServerType, Set<ServerName>> deadServersUnderProcessing =
new HashMap<ServerType, Set<ServerName>>();
{code}
The second line of javadoc should read: ' to set of dead servers being processed'
Please wrap long line.

I think we should pre-create HashSet's for the three ServerType's in DeadServer ctor.
This way we can omit runtime checks such as:
{code}
+    if (deadNormalServersBeingProcessed == null) {
+      deadNormalServersBeingProcessed = new HashSet<ServerName>();
+      deadServersUnderProcessing.put(ServerType.NORMAL,
+          deadNormalServersBeingProcessed);
+    }
{code}
{code}
+   * @param assuredRootServer true if it's dead server carrying root certainly.
+   * @param assuredMetaServer true if it's dead server carrying meta certainly.
{code}
How about naming the parameters definitiveRootServer and definitiveMetaServer ? (Change certainly
to definitely).

We should use low value for "hbase.master.wait.on.regionservers.timeout" so that the new test
case doesn't take too long.
                
> Concurrent processing of processFaileOver and ServerShutdownHandler may cause region
to be assigned before log splitting is completed, causing data loss
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-5179
>                 URL: https://issues.apache.org/jira/browse/HBASE-5179
>             Project: HBase
>          Issue Type: Bug
>          Components: master
>    Affects Versions: 0.90.2
>            Reporter: chunhui shen
>            Assignee: chunhui shen
>            Priority: Critical
>             Fix For: 0.92.0, 0.94.0, 0.90.6
>
>         Attachments: 5179-90.txt, 5179-90v2.patch, 5179-90v3.patch, 5179-90v4.patch,
5179-90v5.patch, 5179-90v6.patch, 5179-90v7.patch, 5179-90v8.patch, 5179-90v9.patch, 5179-v2.txt,
5179-v3.txt, 5179-v4.txt, hbase-5179.patch, hbase-5179v10.patch, hbase-5179v5.patch, hbase-5179v6.patch,
hbase-5179v7.patch, hbase-5179v8.patch, hbase-5179v9.patch
>
>
> If master's processing its failover and ServerShutdownHandler's processing happen concurrently,
it may appear following  case.
> 1.master completed splitLogAfterStartup()
> 2.RegionserverA restarts, and ServerShutdownHandler is processing.
> 3.master starts to rebuildUserRegions, and RegionserverA is considered as dead server.
> 4.master starts to assign regions of RegionserverA because it is a dead server by step3.
> However, when doing step4(assigning region), ServerShutdownHandler may be doing split
log, Therefore, it may cause data loss.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message