[
https://issues.apache.org/jira/browse/HBASE-13938?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14593863#comment-14593863
]
Devaraj Das commented on HBASE-13938:
-------------------------------------
Don't we need the "max" computation in the
RegionMergeTransaction.prepareMutationsForMerge as well...
> Deletes done during the region merge transaction may get eclipsed
> -----------------------------------------------------------------
>
> Key: HBASE-13938
> URL: https://issues.apache.org/jira/browse/HBASE-13938
> Project: HBase
> Issue Type: Bug
> Components: master, regionserver
> Reporter: Devaraj Das
> Assignee: Enis Soztutar
> Fix For: 1.1.1
>
> Attachments: 13938-branch-1.1.txt, hbase-13938_v2-branch-1.1.patch
>
>
> Was looking at an issue from our internal testing. It seems the Deletes of
> the region rows from the meta done during the merge transaction could be
> eclipsed by the Put of a region row that might have happened moments before.
> The master logs this for the merge:
> {noformat}
> 2015-06-18 13:13:46,018 INFO [AM.ZK.Worker-pool2-t12]
> master.AssignmentManager: Handled MERGED event;
> merged=IntegrationTestIngest,a666665c,1434633226681.0927319db6bf5e128e3bec2a420819aa.,
>
> region_a=IntegrationTestIngest,a666665c,1434631353820.8b911862d7705ac808b8d132d0154c16.,
>
> region_b=IntegrationTestIngest,acccccc2,1434631353820.1bdaf759862f45d133ef77fdbda21aec.,
> on ddas-2-5.openstacklocal,16020,1434632778438
> {noformat}
> One of the regions that got merged got Opened a few seconds back:
> {noformat}
> 2015-06-18 13:13:46,591 INFO [RS_OPEN_REGION-ddas-2-5:16020-1]
> regionserver.HRegion: Onlined 1bdaf759862f45d133ef77fdbda21aec; next
> sequenceid=182988
> {noformat}
> The above would have done a Put in the meta.
> Looking at the raw scan of the meta, for the new merged region, the creation
> timestamp is 1434633226101:
> {noformat}
>
> IntegrationTestIngest,a666665c,1434633226681.0927319db6bf5e128e3bec2a420819aa.
> column=info:regioninfo, timestamp=1434633226101, value={ENCODED =>
> 0927319db6bf5e128e3bec2a420819aa, NAME =>
> 'IntegrationTestIngest,a666665c,1434633226681.0927319db6bf5e128e3bec2a420819aa.',
> STARTKEY => 'a666665c', ENDKEY => 'b3333328'}
> {noformat}
> Looking at the raw scan of the meta, the timestamp for the region open of the
> already merged region is 1434633226600. This is a little after the merge
> transaction's timestamp.
> {noformat}
> IntegrationTestIngest,acccccc2,1434631353820.1bdaf759862f45d133ef77fdbda21aec.
> column=info:seqnumDuringOpen, timestamp=1434633226600,
> value=\x00\x00\x00\x00\x00\x02\xCA\xCC
>
> IntegrationTestIngest,acccccc2,1434631353820.1bdaf759862f45d133ef77fdbda21aec.
> column=info:server, timestamp=1434633226600,
> value=ddas-2-5.openstacklocal:16020
>
> IntegrationTestIngest,acccccc2,1434631353820.1bdaf759862f45d133ef77fdbda21aec.
> column=info:serverstartcode, timestamp=1434633226600, value=1434632778438
> {noformat}
> We need to fix it so that the merge region transaction also takes the
> master's timestamp. Similar to HBASE-13875.
> When this happens, clients start to see a row in the meta with an empty
> HRegionInfo (this is because the Put done during the region open only updates
> the location information but not the HRI, and the HRI deleted during the
> merge transaction "remains deleted").
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)