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

Jean-Daniel Cryans commented on HBASE-5782:
-------------------------------------------

Looking more into this, I think HBASE-4487 is the real issue. I think I can 
also prove that you can get the issue even with a disabled {{LogSyncer}}.

t1 does {{appendNoSync}} of k1
t1 does {{syncer}} up to {{getPendingWrites}}
t2 does {{appendNoSync}} of k2
t2 does {{syncer}} up to the end

In the log you'd see k2 then k1 so what's really wrong to me is this:

{code}
// Done in parallel for all writer threads, thanks to HDFS-895
List<Entry> pending = logSyncerThread.getPendingWrites();
{code}

Although accessing pending writes is done in sync, you can apply them in 
whichever way.

Furthermore, {{logSyncerThread.hlogFlush}} can also append entries to the WAL 
in any order. For example, if both t1 and t2 have multiple edits they could end 
up intermingled in the WAL simply by doing {{hlogFlush}} at the same time.

If {{LogSyncer}} was really an issue then {{HRegion.put}} and 
{{HRegion.delete}} would need to be disabled too since they don't use 
{{appendNoSync}} and just sync everything :)

How this used to work is that threads could only append to the WAL under the 
{{updateLock}} and that was done at the same time as the {{doWrite}} which 
creates the key. The call to sync could be done by any number of threads at the 
same time.

If this is right, then we should pull back HBASE-4487 or add more locks.

We should also change this Jira's title once we get a better understanding of 
the problem because it's not a region assignment problem.
                
> Not all the regions are getting assigned after the log splitting.
> -----------------------------------------------------------------
>
>                 Key: HBASE-5782
>                 URL: https://issues.apache.org/jira/browse/HBASE-5782
>             Project: HBase
>          Issue Type: Bug
>          Components: wal
>    Affects Versions: 0.94.0
>            Reporter: Gopinathan A
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Blocker
>             Fix For: 0.94.0
>
>         Attachments: HBASE-5782.patch
>
>
> Create a table with 1000 splits, after the region assignemnt, kill the 
> regionserver wich contains META table.
> Here few regions are missing after the log splitting and region assigment. 
> HBCK report shows multiple region holes are got created.
> Same scenario was verified mulitple times in 0.92.1, no issues.

--
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

        

Reply via email to