[
https://issues.apache.org/jira/browse/HBASE-4389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13103938#comment-13103938
]
Todd Lipcon commented on HBASE-4389:
------------------------------------
After a quick pass through the migration code, here are the various issues I
see:
- HRegionInfo didn't have its VERSION incremented. Hence exception catching is
used to try to determine which version is being read.
- A single "migrated" boolean flag is used in ROOT to indicate that META has
been updated to the new format. This leaves us no room for future migrations.
"migrated" is not a boolean. It should instead be "migratedToVersion" or
something
- Migration should be idempotent - ie even if the "migratedToVersion" flag
didn't get updated, migration should be able to re-run without crashing
- Duplicated code between updateRootWithNewRegionInfo and
updateMetaWithNewRegionInfo
- Each region that is processed results in a call to createTableDescriptor,
which results in calls to the NN - this will take a long time on a big cluster,
and is unnecessary
- No sanity checking that all of the HTDs for a table are equal
- Migration code should ideally be moved to a separate class, instead of mixed
with the non-migration code paths
> Address lots of issues with migration from 90 to trunk
> ------------------------------------------------------
>
> Key: HBASE-4389
> URL: https://issues.apache.org/jira/browse/HBASE-4389
> Project: HBase
> Issue Type: Bug
> Components: master
> Affects Versions: 0.92.0
> Reporter: Todd Lipcon
> Priority: Critical
> Fix For: 0.92.0
>
>
> Looking over the migration code that removes HTD from HRI, there are lots of
> issues. This JIRA is to redo this code in a way that will be less bug prone,
> and also future proof.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira