I filed, https://issues.apache.org/jira/browse/HBASE-22956, for a first release of hbck2. S
On Fri, Aug 30, 2019 at 8:31 AM Peter Somogyi <psomo...@apache.org> wrote: > Thanks for all the feedback! > > Looks like my information about compatibility was incorrect and we do not > need to build HBCK2 targeted for the actual HBase version. Having > command-specific version checks that Stack mentioned looks good enough to > deal with compatibility. > Currently there are some issues with Replication on 2.0 releases. I'll work > on some corrections and once it's done with hbck1+ coverage we can start to > work on the first release! > > Peter > > On Thu, Aug 29, 2019 at 11:07 PM Sakthi <sak...@apache.org> wrote: > > > I like the last idea suggested by Stack. This way the core idea of > keeping > > both the dev process separate stays intact and also the operators have a > > version of hbck to fix their clusters without worrying about > compatibility > > issues. > > > > On Thu, Aug 29, 2019 at 2:03 PM Stack <st...@duboce.net> wrote: > > > > > Could also just make a release now of hbase-operator-tools (or in a > week > > or > > > so when we should have hbck1+ coverage in place) built against an > > > up-to-date hbase release. It has the check version before running a > > feature > > > in place where it matters. Operators could use this on all currently > > > shipping hbase2s? > > > > > > S > > > > > > On Thu, Aug 29, 2019 at 11:42 AM Stack <st...@duboce.net> wrote: > > > > > > > On Thu, Aug 29, 2019 at 7:34 AM Wellington Chevreuil < > > > > wellington.chevre...@gmail.com> wrote: > > > > > > > >> > > > > >> > I do not think we need to compile HBCK2 with every releases? > > > >> > > > > >> Well, not with every release, was thinking in doing it whenever an > > hbase > > > >> release breaks compatibility. > > > >> > > > >> We just need > > > >> > make sure that it can work with all the releases. > > > >> > > > >> This could be a solution as well, but I believe it would be harder > to > > > >> guarantee. Here the problem is: > > > >> 1) A new hbase release changes one or more interfaces currently used > > by > > > >> hbck2; > > > >> 2) We update hbck2 to depend on this new hbase release, and change > > hbck2 > > > >> accordingly; > > > >> 3) Operators need to run hbck2 to a previous hbase release. If they > > try > > > to > > > >> build hbck2 against that version, it won't compile. If they build it > > > with > > > >> latest hbase version, it may give a runtime error, and now they have > > no > > > >> working tool to fix the problem. > > > >> To avoid #3, we would need to add extra checks on the changes > applied > > on > > > >> #2. Might become too complex. > > > >> > > > >> Thanks Wellington for above. I see issue now. > > > > > > > > So, we should make retroactive releases of hbase-operator-tools at > > points > > > > just before compat broke? Release could be named for the hbase2 > > versions > > > > supported. Releases would make it easier on operators making it so > they > > > > don't have to build themselves? There'd be one only? Two maybe? > > > > > > > > Looking at changes to the Hbck Interface -- using this as gauge for > > > > possible breakage points -- there aren't many. One release? Maybe > two? > > > > > > > > S > > > > > > > > > > > > > > > >> If there are missing > > > >> > methods, we just tell users you can not use several features. > > > >> > > > >> Fine for new fix options added, but what if some changes break > basic, > > > >> already working hbck2 methods. > > > >> > > > >> > > > >> Em qui, 29 de ago de 2019 às 14:51, 张铎(Duo Zhang) < > > > palomino...@gmail.com> > > > >> escreveu: > > > >> > > > >> > I do not think we need to compile HBCK2 with every releases? We > just > > > >> need > > > >> > make sure that it can work with all the releases. If there are > > missing > > > >> > methods, we just tell users you can not use several features. > > > >> > > > > >> > Wellington Chevreuil <wellington.chevre...@gmail.com> > 于2019年8月29日周四 > > > >> > 下午9:39写道: > > > >> > > > > >> > > > > > > >> > > > bq. what would folks think about going with an hbck2 alpha > > > release? > > > >> > > > I'm fine with an alpha release but since "HBCK2 should > > > continuously > > > >> > > evolve" > > > >> > > > it might be better to always use the latest codebase whenever > > you > > > >> need > > > >> > to > > > >> > > > use the tool. > > > >> > > > > > > >> > > Ideally yes, but that might not always be possible, as hbase API > > > might > > > >> > > change ahead of hbck2. Operators could then have problems to > get a > > > >> > working > > > >> > > version of hbck2. Since hbck2 already has now many equivalent > > > options > > > >> for > > > >> > > the ones from hbck1, I guess a first release would provide a > > working > > > >> > hbck2 > > > >> > > that already brings a considerable number of fix methods to help > > > with > > > >> > most > > > >> > > common inconsistencies issues seen in hbase 2 so far. And we > could > > > >> still > > > >> > > fulfil the "HBCK2 should continuously evolve" principle by > > building > > > >> from > > > >> > > its master branch, in scenarios where a new fix was needed and > > > >> > implemented > > > >> > > back into hbck2. > > > >> > > > > > >> > > Em qui, 29 de ago de 2019 às 14:09, Peter Somogyi < > > > >> psomo...@apache.org> > > > >> > > escreveu: > > > >> > > > > > >> > > > bq. Is it possible to put some hacks into HBCK2 to work around > > > >> > > > the compatibility to fix the current state > > > >> > > > > > > >> > > > There are some classes around Replication which were > introduced > > in > > > >> > 2.1.0+ > > > >> > > > so I don't think we could easily solve it for 2.0. > > > >> > > > For 2.1.1 the missing method is > > Hbck#scheduleServerCrashProcedure, > > > >> > > probably > > > >> > > > that could be solved with some workarounds or using > reflection. > > > >> > > > > > > >> > > > bq. focus more on automation to let us know the next time we > > > >> inevitably > > > >> > > > break it again? ;) > > > >> > > > > > > >> > > > Sure! Based on this I think it should be a strong goal. We can > > set > > > >> up > > > >> > > > nightly builds for hbase-operator-tools repo that builds > against > > > the > > > >> > > latest > > > >> > > > development branches as well as checking compatibility with > > > released > > > >> > > > versions. > > > >> > > > > > > >> > > > bq. what would folks think about going with an hbck2 alpha > > > release? > > > >> > > > I'm fine with an alpha release but since "HBCK2 should > > > continuously > > > >> > > evolve" > > > >> > > > it might be better to always use the latest codebase whenever > > you > > > >> need > > > >> > to > > > >> > > > use the tool. > > > >> > > > > > > >> > > > On Thu, Aug 29, 2019 at 2:30 PM Wellington Chevreuil < > > > >> > > > wellington.chevre...@gmail.com> wrote: > > > >> > > > > > > >> > > > > I would favour having hbck2 release branches. Temporary > > > >> compatibility > > > >> > > > > breaks at compile time may be inevitable if we always point > to > > > the > > > >> > > latest > > > >> > > > > release. That could cause problems for operators trying to > > build > > > >> > hbck2 > > > >> > > > (we > > > >> > > > > are already seeing this happening with our support team). > > > Another > > > >> > > > argument > > > >> > > > > for starting having hbck2 releases is that we already have > > > quite a > > > >> > few > > > >> > > > > hbase 2 releases, yet, the main tool to fix inconsistencies > is > > > not > > > >> > > easily > > > >> > > > > available. And there's been considerable efforts lately to > > bring > > > >> many > > > >> > > of > > > >> > > > > the fix options from hbck1 into hbck2, so what would folks > > think > > > >> > about > > > >> > > > > going with an hbck2 alpha release? > > > >> > > > > > > > >> > > > > Em qui, 29 de ago de 2019 às 13:20, Josh Elser < > > > els...@apache.org > > > >> > > > > >> > > > > escreveu: > > > >> > > > > > > > >> > > > > > I still like one HBCK2 release as the goal. > > > >> > > > > > > > > >> > > > > > Is it possible to put some hacks into HBCK2 to work around > > the > > > >> > > > > > compatibility to fix the current state and focus more on > > > >> automation > > > >> > > to > > > >> > > > > > let us know the next time we inevitably break it again? ;) > > > >> > > > > > > > > >> > > > > > On 8/29/19 8:12 AM, Peter Somogyi wrote: > > > >> > > > > > > Hi everyone, > > > >> > > > > > > > > > >> > > > > > > This topic came up a couple of times already but now we > > > >> reached a > > > >> > > > point > > > >> > > > > > > when the recent HBCK2 is incompatible with older HBase > > > >> releases, > > > >> > > > > > > specifically 2.0.x, 2.1.0 and 2.1.1. When you build > HBCK2 > > > >> against > > > >> > > one > > > >> > > > > of > > > >> > > > > > > the previously mentioned releases you will get > compilation > > > >> > errors. > > > >> > > > (mvn > > > >> > > > > > > clean install -DskipTests -Dhbase.version=2.0.6) > > > >> > > > > > > > > > >> > > > > > > Our previous goal was to maintain compatibility with > HBCK2 > > > and > > > >> > all > > > >> > > > > HBase > > > >> > > > > > 2 > > > >> > > > > > > releases. Now we missed this target. > > > >> > > > > > > > > > >> > > > > > > One option that we could do is to have different > > > >> > branches/releases > > > >> > > of > > > >> > > > > > HBCK2 > > > >> > > > > > > targeted for specific HBase releases (e.g. branch-2.0 > > > version > > > >> of > > > >> > > > > HBCK2). > > > >> > > > > > > This probably makes the development on HBCK2 a bit > harder > > > >> since > > > >> > > we'll > > > >> > > > > > have > > > >> > > > > > > to take care of multiple branches. > > > >> > > > > > > > > > >> > > > > > > Another option I could think of is to always build HBCK2 > > > with > > > >> the > > > >> > > > > latest > > > >> > > > > > > HBase release but have version checks on individual > > commands > > > >> > where > > > >> > > we > > > >> > > > > > could > > > >> > > > > > > decide if it is supported on that release line. > > > >> > > > > > > > > > >> > > > > > > What are your opinions on this? > > > >> > > > > > > > > > >> > > > > > > Thanks, > > > >> > > > > > > Peter > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > > > > > > > >