You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Sergey Shelukhin (JIRA)" <ji...@apache.org> on 2013/05/23 01:11:20 UTC

[jira] [Updated] (HBASE-8597) compaction record (probably) can block WAL cleanup forever if region is closed without edits

     [ https://issues.apache.org/jira/browse/HBASE-8597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sergey Shelukhin updated HBASE-8597:
------------------------------------

    Description: 
A region is opened by a server, major compaction is performed, that triggers a split, and the region is closed and split. There's no indication of memstore flush for this region.
After that, LogRoller repeatedly tries to request the flush of this region due to large number of HLogs, but fails to flush it for hours because the region is not in online regions.
It seems that what's happening is that when we append entries to WAL we add the first entry after we flush/open some region to "earliest unflushed seqNums per region" map in FSHLog. However, compaction now adds compaction record to WAL, which also affects this map. If the compaction record is the first entry for this region to go into some WAL, and there are no writes to the region after that, there will be no memstore flush and the entry will never be removed. 
In fact "flushing" for compaction record doesn't make sense, there's no  preservation of the record outside WAL; so, we probably should not add it to "latest unflushed" map.

  was:
A region is opened by a server, major compaction is performed, that triggers a split, and the region is closed and split. There's no indication of memstore flush for this region.
After that, LogRoller repeatedly tries to request the flush of this region due to large number HLogs, but fails to flush it for hours because the region is not in online regions.
It seems that what's happening is that when we append entries to WAL, we add them to "earliest unflushed seqNums per region" in FSHLog. However, compaction now adds compaction record to WAL, which also affects this map. If the compaction record is the first entry for this region to go into some WAL, and there are no writes to the region after that, there will be no memstore flush and the entry will never be removed. 
In fact "flushing" for compaction record doesn't make sense, there's no  preservation of the record outside WAL; so, we probably should not add it to "latest unflushed" map.

    
> compaction record (probably) can block WAL cleanup forever if region is closed without edits
> --------------------------------------------------------------------------------------------
>
>                 Key: HBASE-8597
>                 URL: https://issues.apache.org/jira/browse/HBASE-8597
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.95.0
>            Reporter: Sergey Shelukhin
>            Assignee: Sergey Shelukhin
>
> A region is opened by a server, major compaction is performed, that triggers a split, and the region is closed and split. There's no indication of memstore flush for this region.
> After that, LogRoller repeatedly tries to request the flush of this region due to large number of HLogs, but fails to flush it for hours because the region is not in online regions.
> It seems that what's happening is that when we append entries to WAL we add the first entry after we flush/open some region to "earliest unflushed seqNums per region" map in FSHLog. However, compaction now adds compaction record to WAL, which also affects this map. If the compaction record is the first entry for this region to go into some WAL, and there are no writes to the region after that, there will be no memstore flush and the entry will never be removed. 
> In fact "flushing" for compaction record doesn't make sense, there's no  preservation of the record outside WAL; so, we probably should not add it to "latest unflushed" map.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira