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:

+   * 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>>();
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:
+    if (deadNormalServersBeingProcessed == null) {
+      deadNormalServersBeingProcessed = new HashSet<ServerName>();
+      deadServersUnderProcessing.put(ServerType.NORMAL,
+          deadNormalServersBeingProcessed);
+    }
+   * @param assuredRootServer true if it's dead server carrying root certainly.
+   * @param assuredMetaServer true if it's dead server carrying meta certainly.
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


View raw message