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

Lars Hofhansl commented on PHOENIX-3797:
----------------------------------------

Thanks [~an...@apache.org].
So if understand this correctly the issue happens when HBCK merges two regions. 
Then we'll two sets of local index rows in the L#0 column family right, so as 
we read and rewrite we might find a previous key following the later start key 
of the 2nd region and hence get the out of order problem. Your solution is to 
not have the compaction write write the local index stuff, but instead write it 
in smaller batches that themselves will not overlap, directly through the 
region.

Is that about right?

If would certainly be nice if we could somehow leave the compaction writer do 
the work, but I do not see how we can do the scanning then. Perhaps one 
solution is to wrap two scanner inside a scanner wrapper and scan from both 
region start keys. In that way we could get the re-written keys in the correct 
order and leave the writing to the compation writer - just thinking aloud here.

> Local Index - Compaction fails on table with local index due to 
> non-increasing bloom keys
> -----------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-3797
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3797
>             Project: Phoenix
>          Issue Type: Bug
>         Environment: Head of 4.x-HBase-0.98 with PHOENIX-3796 patch applied. 
> HBase 0.98.23-hadoop2
>            Reporter: Mujtaba Chohan
>            Assignee: Ankit Singhal
>            Priority: Blocker
>             Fix For: 4.11.0
>
>         Attachments: PHOENIX-3797.patch, PHOENIX-3797_v2.patch
>
>
> Compaction fails on table with local index.
> {noformat}
> 2017-04-19 16:37:56,521 ERROR 
> [RS:0;host:59455-smallCompactions-1492644947594] 
> regionserver.CompactSplitThread: Compaction failed Request = 
> regionName=FHA,00Dxx0000001gES005001xx000003DGPd,1492644985470.92ec6436984981cdc8ef02388005a957.,
>  storeName=L#0, fileCount=3, fileSize=44.4 M (23.0 M, 10.7 M, 10.8 M), 
> priority=7, time=7442973347247614
> java.io.IOException: Non-increasing Bloom keys: 
> 00Dxx0000001gES005001xx000003DGPd\x00\x00\x80\x00\x01H+&\xA1(00Dxx0000001gER001001xx000003DGPb01739544DCtf
>     after 
> 00Dxx0000001gES005001xx000003DGPd\x00\x00\x80\x00\x01I+\xF4\x9Ax00Dxx0000001gER001001xx000003DGPa017115434KTM
>    
>       at 
> org.apache.hadoop.hbase.regionserver.StoreFile$Writer.appendGeneralBloomfilter(StoreFile.java:960)
>       at 
> org.apache.hadoop.hbase.regionserver.StoreFile$Writer.append(StoreFile.java:996)
>       at 
> org.apache.hadoop.hbase.regionserver.compactions.Compactor.performCompaction(Compactor.java:428)
>       at 
> org.apache.hadoop.hbase.regionserver.compactions.Compactor.compact(Compactor.java:276)
>       at 
> org.apache.hadoop.hbase.regionserver.compactions.DefaultCompactor.compact(DefaultCompactor.java:64)
>       at 
> org.apache.hadoop.hbase.regionserver.DefaultStoreEngine$DefaultCompactionContext.compact(DefaultStoreEngine.java:121)
>       at org.apache.hadoop.hbase.regionserver.HStore.compact(HStore.java:1154)
>       at 
> org.apache.hadoop.hbase.regionserver.HRegion.compact(HRegion.java:1559)
>       at 
> org.apache.hadoop.hbase.regionserver.CompactSplitThread$CompactionRunner.doCompaction(CompactSplitThread.java:502)
>       at 
> org.apache.hadoop.hbase.regionserver.CompactSplitThread$CompactionRunner.run(CompactSplitThread.java:540)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:722)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to