[
https://issues.apache.org/jira/browse/HBASE-8741?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13688572#comment-13688572
]
stack commented on HBASE-8741:
------------------------------
[~sershe] I think this a good scheme as long as we do stuff to make sure we do
not block (go get new batch of numbers before we hit the highest number
allowed). Having the data in a system table would probably be best since we
don't want to do some kind of negotiation among regionservers to see what the
highest number is on cluster restart. It would be cluster-wide? What happens
when the cluster hits Long.MAX_VALUE?
Can we come up w/ a scheme that doesn't have to have a cluster-wide number?
Couldn't we have sequence numbers per region?
I thought Enis's scheme nice where you allow only N edits per file but realize
now that it does not work since sequenceid can be bumped if we get a region
from a server whose sequenceid count is way in excess of ours.
[[email protected]] I like Sergey's proposal better. Less moving parts.
> 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
>
> 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