[
https://issues.apache.org/jira/browse/PHOENIX-3797?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16031966#comment-16031966
]
Lars Hofhansl commented on PHOENIX-3797:
----------------------------------------
Some more ideas that [~jamestaylor] and I were brainstorming. Essentially we
need to find the two region start keys for the local index rows that got merged
together into one.
One solution is to find the first key, extract its region start key, then
create a second scanner that is guaranteed to start after all keys that start
with that region key (so that scanner will find the rows from the 2nd former
region that got merged).
Or we can use a reverse scanner to find the last key, and then extract the 2nd
region start key from there.
Perhaps there are easier ways to find the start keys of the previous regions
that got merged?
In either cases we'd have a scanner that wraps these two scanners and does a
mergesort between them.
> 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)