[ https://issues.apache.org/jira/browse/HBASE-2235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12835985#action_12835985 ]
Kannan Muthukkaruppan commented on HBASE-2235: ---------------------------------------------- @stack: You wrote <<<The report of split is not atomic; we are sending 3 separate puts. We don't have means of making a cross-row transaction out of this operation>>>. Would keeping all region info for a table as columns under a single row key in .META. be such a crazy idea? With that you can do atomic mutations to a given table's region info. The cons would be that entire "rowkey" would be hosted on a single server... but for most tables that'd probably already be the case unless it has an exorbitant number of regions. > Mechanism that would not have -ROOT- and .META. on same server caused failed > assign of .META. > --------------------------------------------------------------------------------------------- > > Key: HBASE-2235 > URL: https://issues.apache.org/jira/browse/HBASE-2235 > Project: Hadoop HBase > Issue Type: Bug > Reporter: stack > Fix For: 0.20.4, 0.21.0 > > > Here is the short story: > Scenario is a cluster of 3 servers. Server 1. crashed. It was carrying the > .META. We split the logs. .META. is put on the head of the assignment > queue. Server 2. happens to be in a state where it wants to report a split. > The master fails the report because there is no .META. (It fails it ugly with > a NPE). Server 3. checks in and falls into the assignment code > (RegionManager#regionsAwaitingAssignment). In here we have this bit of code > around line #412: > {code} > if (reassigningMetas && isMetaOrRoot && !isSingleServer) { > return regionsToAssign; // dont assign anything to this server. > } > {code} > Because we think this not a single server cluster -- we think there are two > 'live' nodes -- we won't assign meta. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.