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

stack edited comment on HBASE-19052 at 10/27/17 9:20 PM:
---------------------------------------------------------

I love the rationale that has it that because there is no test in issue A, 
issue B doesn't need one and that migration being neither branch-1 nor 
branch-2, but in-between, is somehow untestable.

Thanks lads for the reminder on this one. I did not have this in my incompat 
section in the hbase2 doc. Added it. I also started up an upgrade/migration 
doc. on requirements and how to migrate: 
https://docs.google.com/document/d/1sL92WaCcYyBTruTf6PMCHaDiWJV2hbObZIbS_JH_x60/edit#heading=h.m2ilt6k4zqn5

Regards the larger issue of requiring our users double-upgrade.... I see 
[~anoop.hbase] asked over in HBASE-16189 the below:

bq. This issue came up again in the dev@ discussion thread. We fixed this in 
later versions of 1.x means when rolling upgrade done to 2.0, first users have 
to upgrade to some 1.x versions which is having this fix and then to 2.0.. What 
do you guys think Whether we should avoid this kind of indirection? cc Enis 
Soztutar, Stack, Ted Yu, Matteo Bertozzi

....and he got no answer.

Expecting users to double-upgrade -- first to latest branch-1 and then to 
branch-2 -- and then go through a double-rolling restart to upgrade is going to 
piss off our operators.

Is trailer the only reason we require folks go to the latest in branch-1 (seems 
weird trying to teach hbase1 about hbase2... where do we stop doing this)? If 
this the only reason to go to the latest on branch-1, can we figure a means of 
doing w/o?

Changing the trailer such that it has arguments that parsers no longer 
understand screams for our updating the version on the hfile. But new version 
because of change in comparator name doesn't seem substantial enough of a 
reason to up our hfile number, not without distinct benefit.

Can we go Poste [1]l here... If we wrote the old name into the hfile, could new 
hfile readers in hbase2 map the old String to the new classes?

Thanks.

1. https://en.wikipedia.org/wiki/Robustness_principle










was (Author: stack):
I love the rationale that has it that because there is no test in issue A, 
issue B doesn't need one and that migration being neither branch-1 nor 
branch-2, but in-between, is somehow untestable.

Thanks lads for the reminder on this one. I did not have this in my incompat 
section in the hbase2 doc. Added it. I also started up an upgrade/migration 
doc. on requirements and how to migrate: 
https://docs.google.com/document/d/1sL92WaCcYyBTruTf6PMCHaDiWJV2hbObZIbS_JH_x60/edit#heading=h.m2ilt6k4zqn5

Regards the larger issue of requiring our users double-upgrade.... I see 
[~anoop.hbase] asked over in HBASE-16189 the below:

bq. This issue came up again in the dev@ discussion thread. We fixed this in 
later versions of 1.x means when rolling upgrade done to 2.0, first users have 
to upgrade to some 1.x versions which is having this fix and then to 2.0.. What 
do you guys think Whether we should avoid this kind of indirection? cc Enis 
Soztutar, Stack, Ted Yu, Matteo Bertozzi

....and he got no answer.

Expecting users to double-upgrade -- first to latest branch-1 and then to 
branch-2 -- and then go through a double-rolling restart to upgrade is going to 
piss off our operators.

Is trailer the only reason we require folks go to the latest in branch-1 (seems 
weird trying to teach hbase1 about hbase2... where do we stop doing this)? If 
this the only reason to go to the latest on branch-1, can we figure a means of 
doing w/o?

Changing the trailer such that it has arguments that parsers no longer 
understand screams for our updating the version on the hfile. But new version 
because of change in comparator name doesn't seem substantial enough of a 
reason to up our hfile number, not without distinct benefit.

If we wrote the old name into the hfile, could new hfile readers in hbase2 map 
the old String to the new classes?

Thanks.









> FixedFileTrailer should recognize CellComparatorImpl class in branch-1.x
> ------------------------------------------------------------------------
>
>                 Key: HBASE-19052
>                 URL: https://issues.apache.org/jira/browse/HBASE-19052
>             Project: HBase
>          Issue Type: Improvement
>          Components: HFile
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Critical
>             Fix For: 1.4.0, 1.3.2, 1.5.0, 1.2.7, 1.1.13
>
>         Attachments: 19052.branch-1.txt
>
>
> HBASE-18945 has gone into branch-2 .
> Let's consider rolling upgrade scenario from 1.x to 2.0 where there're three 
> servers: s1, s2, s3
> s1 is upgraded to 2.0 first. It flushes to hfile in region r1 with 
> CellComparatorImpl written in the hfile trailer.
> Somehow s1 crashes and master assigns r1 to s2 which is still running 1.x
> The following code in FixedFileTrailer would be triggered:
> {code}
>       try {
>         comparatorKlass = (Class<? extends CellComparator>) 
> Class.forName(comparatorClassName);
>       } catch (ClassNotFoundException e) {
>         throw new IOException(e);
>       }
> {code}
> since s2 is not aware of CellComparatorImpl.
> This issue is to backport CellComparatorImpl related change to branch-1.x
> Note: CellComparatorImpl wouldn't be used in write path, only in read path.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to