hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Himanshu Vashishtha (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-8741) Scope sequenceid to the region rather than regionserver (WAS: Mutations on Regions in recovery mode might have same sequenceIDs)
Date Sat, 26 Oct 2013 00:08:31 GMT

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

Himanshu Vashishtha commented on HBASE-8741:
--------------------------------------------

Hmm, wonder why I didn't see on my local.

The three differences are:
1) RV       org.apache.hadoop.hbase.tool.Canary$RegionMonitor.generateMonitorTables(String[])
forgets to throw new org.apache.hadoop.hbase.TableNotFoundException(String)
2) WMI	Method org.apache.hadoop.hbase.tool.Canary$RegionServerMonitor.doFilterRegionServerByName(Map)
makes inefficient use of keySet iterator instead of entrySet iterator
3) Method org.apache.hadoop.hbase.regionserver.wal.FSHLog.isAllRegionsFlushed(Map, Map, Map)
makes inefficient use of keySet iterator instead of entrySet iterator

The last one is related to the patch, the other two looks from HBASE-7525. 
I changed the patch to make findbugs happy. Unit testing it, will upload it shortly.

> Scope sequenceid to the region rather than regionserver (WAS: Mutations on Regions in
recovery mode might have same sequenceIDs)
> --------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-8741
>                 URL: https://issues.apache.org/jira/browse/HBASE-8741
>             Project: HBase
>          Issue Type: Bug
>          Components: MTTR
>    Affects Versions: 0.95.1
>            Reporter: Himanshu Vashishtha
>            Assignee: Himanshu Vashishtha
>             Fix For: 0.98.0
>
>         Attachments: HBASE-8741-trunk-v6.1-rebased.patch, HBASE-8741-trunk-v6.2.1.patch,
HBASE-8741-trunk-v6.patch, HBASE-8741-v0.patch, HBASE-8741-v2.patch, HBASE-8741-v3.patch,
HBASE-8741-v4-again.patch, HBASE-8741-v4-again.patch, HBASE-8741-v4.patch, HBASE-8741-v5-again.patch,
HBASE-8741-v5.patch
>
>
> Currently, when opening a region, we find the maximum sequence ID from all its HFiles
and then set the LogSequenceId of the log (in case the later is at a small value). This works
good in recovered.edits case as we are not writing to the region until we have replayed all
of its previous edits. 
> With distributed log replay, if we want to enable writes while a region is under recovery,
we need to make sure that the logSequenceId > maximum logSequenceId of the old regionserver.
Otherwise, we might have a situation where new edits have same (or smaller) sequenceIds. 
> We can store region level information in the WALTrailer, than this scenario could be
avoided by:
> a) reading the trailer of the "last completed" file, i.e., last wal file which has a
trailer and,
> b) completely reading the last wal file (this file would not have the trailer, so it
needs to be read completely).
> In future, if we switch to multi wal file, we could read the trailer for all completed
WAL files, and reading the remaining incomplete files.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message