[
https://issues.apache.org/jira/browse/HBASE-12405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
zhangduo updated HBASE-12405:
-----------------------------
Attachment: HBASE-12405_1.patch
fix testcase error
And there is a bug introduced by HBASE-10201, I think we need to make an
addendum to fix it rather than fix it in this patch.
In FSHLog.getOrCreateOldestUnflushedStoreSequenceIdsOfRegion, just change
{code}
ConcurrentMap<byte[], Long> alreadyPut =
oldestUnflushedStoreSequenceIds.put(encodedRegionName,
oldestUnflushedStoreSequenceIdsOfRegion);
{code}
to
{code}
ConcurrentMap<byte[], Long> alreadyPut =
oldestUnflushedStoreSequenceIds.putIfAbsent(encodedRegionName,
oldestUnflushedStoreSequenceIdsOfRegion);
{code}
> WAL accounting by Store
> -----------------------
>
> Key: HBASE-12405
> URL: https://issues.apache.org/jira/browse/HBASE-12405
> Project: HBase
> Issue Type: Improvement
> Components: wal
> Affects Versions: 2.0.0, 1.1.0
> Reporter: zhangduo
> Assignee: zhangduo
> Fix For: 2.0.0, 1.1.0
>
> Attachments: HBASE-12405.patch, HBASE-12405_1.patch
>
>
> HBASE-10201 has made flush decisions per Store, but has not done enough work
> on HLog, so there are two problems:
> 1. We record minSeqId both in HRegion and FSHLog, which is a duplication.
> 2. There maybe holes in WAL accounting.
> For example, assume family A with sequence id 1 and 3, family B with
> seqId 2. If we flush family A, we can only record that WAL before sequence id
> 1 can be removed safely. If we do a replay at this point, sequence id 3 will
> also be replayed which is unnecessary.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)