Auto-Split runs only if there are many store files per region
-------------------------------------------------------------

                 Key: HBASE-4084
                 URL: https://issues.apache.org/jira/browse/HBASE-4084
             Project: HBase
          Issue Type: Bug
          Components: regionserver
    Affects Versions: 0.94.0
            Reporter: John Heitmann


Currently, MemStoreFlusher.flushRegion() is the driver of auto-splitting. It 
only decides to auto-split a region if there are too many store files per 
region. Since it's not guaranteed that the number of store files per region 
always grows above the "too many" count before compaction reduces the count, 
there is no guarantee that auto-split will ever happen. In my test setup, 
compaction seems to always win the race and I haven't noticed auto-splitting 
happen once.

It appears that the intention is to have split be mutually exclusive with 
compaction, and to have flushing be mutually exclusive with regions badly in 
need of compaction, but that resulted in auto-splitting being nested in a 
too-restrictive spot.

I'm not sure what the right fix is. Having one method that is essentially 
requestSplitOrCompact would probably help readability, and could be the 
ultimate solution if it replaces other calls of requestCompaction().

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to