[
https://issues.apache.org/jira/browse/HBASE-8741?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13730426#comment-13730426
]
Himanshu Vashishtha commented on HBASE-8741:
--------------------------------------------
Thanks for the review Stack.
bq. What else has changed since previous versions?
a) The addition of HLogService interface which provides regions sequenceIDs to
HLog at time of rolling.
b) Using mock HRS in test methods where we want to control log archiving.
bq. Is HLogServices the right name for the Interface that has
obtainRegionsSequenceId? Should it be SequenceIdsService? Or just SequenceIds?
It is HLog that wants the Service, right? It is not a a Service that HLog is
providing?
I named it a general Service so as in case if we had to add more service
methods to it. But yes, it is service that HLog wants. Looking at other places
such as RegionServerServices, I think it could be called RegionSequenceIds. I
will do the required refactoring.
Also, I ran IT (IntegrationTestBigLinkedList,
IntegrationTestBigLinkedListWithChaosMonkey) tests on a patched cluster
(BigLinkedListTests) last weekend.
> 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.95.2
>
> Attachments: 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
>
>
> 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 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