Makes sense. Thanks Andrew for clarifying! On Thu, Feb 17, 2022, 21:28 Andrew Purtell <apurt...@apache.org> wrote:
> On Thu, Feb 17, 2022 at 12:19 PM Peter Somogyi <psomo...@apache.org> > wrote: > > > I like the idea of including the store file tracking in 2.5.0 to unblock > > the HBCK development efforts. > > > > Unfortunately, I was not following its development that much. Can it > cause > > any issues if 2.5.0 has the feature but later an incompatible change is > > needed for SFT? Can it be marked as a beta feature where we are free to > > modify interfaces? > > > > Yes, this is what I meant when I suggested we could mark it as > 'experimental'. We have done this in the past. The word 'experimental' is > prominently included adjacent to any discussion of the feature in > documentation and release notes. When we feel for sure it is stable that > word is removed. We can do something different this time of course but that > has been our past practice when introducing new functionality into > releasing code lines. And I presume we would use the Evolving interface > annotation everywhere. > > Peter > > > > On Tue, Feb 15, 2022 at 11:07 PM Andrew Purtell < > andrew.purt...@gmail.com> > > wrote: > > > > > Another option which I do not see mentioned yet is to extract the > > relevant > > > common proto and source files from the ‘hbase’ repository into a new > > > repository (‘hbase-storage’?), from which we would release artifacts to > > be > > > consumed by both hbase and hbase-operator-tools. This maintains D.R.Y. > > > through refactoring although it may down the road cause some complexity > > in > > > coordinating evolution among the three (if not more) repositories and > > > releases produced from them. This is like Josh’s Option 1 but without > > > duplication. > > > > > > Regarding the option 2 issue… If it would help we can drop SFT into > > > branch-2.5 along with the log4j2 changes and release 2.5.0 afterward. > We > > > are taking the opportunity of this minor increment to accelerate log4j1 > > > retirement, which is why it’s still waiting (but not for long). We can > > use > > > the same opportunity to release SFT even if we designate it as an > > > experimental feature if that would simplify some other logistics. For > > what > > > it’s worth. > > > > > > > On Feb 15, 2022, at 7:44 AM, Josh Elser <els...@apache.org> wrote: > > > > > > > > I was talking with Szabolcs prior to him sending this one, and it's > a > > > tricky issue for sure. > > > > > > > > To date, we've solved any HBase API issues by copying code into HBCK2 > > > e.g. HBCKMetaTableAccessor which copies parts of MetaTableAccessor, or > we > > > push the logic down server-side to the HBase Master and invoke it over > > the > > > Hbck RPC interface. > > > > > > > > I definitely want to avoid HBase version specific builds of the > > > operator-tools, so that is not an option in my mind for 2.x. The > > > discussions we had (that I remember) around HBCK2 were limited in scope > > to > > > HBase 2.x. > > > > > > > > Option 1: we copy the necessary proto files from HBase into the > > > operator-tools and try to remember that, if we make any change to the > > > serialization of the storefile list files, we have to copy that change > to > > > HBCK2. Brittle on the surface but effective. > > > > > > > > Option 2: We bump HBCK2 to hbase-2.6.0-SNAPSHOT. Problematic until we > > > make an HBase 2.6.0[-alpha] release. We should already have wire compat > > > between all of HBase 2.x which makes that a non-issue. > > > > > > > > Option 3: We create an HBCK3 targeted for HBase 3.x. I'm not > convinced > > > we need to do that (hbck for hbase 3.x would be just like hbck for > hbase > > > 2.x). This would also not solve the problem for the SFT feature in > hbase > > > 2.6. > > > > > > > > I think option 3 is a no-go. I am leaning towards option 1 at this > > > point. Hopefully my thought process is helpful for others to weigh in. > > > > > > > > > > > >> On 2/14/22 11:31 AM, Szabolcs Bukros wrote: > > > >> Hi Folks! > > > >> While working on adding tools to handle potential FileBased > > > >> StoreFileTracker issues to HBCK2 (HBASE-26624 > > > >> <https://issues.apache.org/jira/browse/HBASE-26624>) I ran into > > > multiple > > > >> problems I'm unsure how to solve. > > > >> First of all the tools would rely on files not yet available in any > of > > > the > > > >> released hbase artifacts. I tried to solve this without changing the > > > hbase > > > >> dependency version to keep HBCK2 as hbase version independent as > > > possible, > > > >> but none of the solutions I have found looked acceptable: > > > >> - Pushing the logic to the hbase side (as far as I can tell) is not > > > >> feasible because it has to be able to repair meta which is easier > when > > > >> hbase is down and the tool should be able to run without a working > > > hbase. > > > >> - The files tracking the store content are serialized proto objects > > so > > > >> while replicating those files in the operator tools is possible, it > > > would > > > >> not be pretty. > > > >> Bumping operator tools to use hbase 2.6.0-SNAPSHOT (branch-2 has the > > SFT > > > >> changes) would mean that now we need that or a newer version to > build > > > the > > > >> project and a version check to avoid runtime problems with the new > > > tools, > > > >> but otherwise this looks rather painless and backwards compatible. I > > > know > > > >> operator tools tries to avoid having a hbase-specific release, but > > > having > > > >> 2.6 as a min version to build against might be acceptable. > > > >> While looking into this I also checked what needs to be done to make > > > >> operator tools work with hbase 3.0.0-alpha-3-SNAPSHOT. Most of the > > > changes > > > >> are backwards compatible but not all of them and the ones that > aren't > > > would > > > >> make a big chunk of Fsck unusable with older hbases. For me that > looks > > > >> acceptable since this is a major version change, but that would > mean I > > > can > > > >> not rely on a potential HBCK3 to fix SFT issues, I would also need a > > > >> solution for HBCK2. > > > >> I tried to look for plans/direction regarding the new 1.3 operator > > tools > > > >> but could not find any. > > > >> Do you think it would be possible to bump the hbase version it uses > to > > > >> 2.6.0-SNAPSHOT? > > > >> Do you think it would make sense to start working on a hbase3 > > compatible > > > >> branch or is it too early? > > > >> NOTE: > > > >> I'm aware hbase does not publish SNAPSHOT builds for years, but I do > > not > > > >> know how the internal build system works and if these artifacts > would > > be > > > >> available for internal builds or not. I also do not know if > necessary > > > could > > > >> they be made available. > > > > > > > > -- > Best regards, > Andrew > > Unrest, ignorance distilled, nihilistic imbeciles - > It's what we’ve earned > Welcome, apocalypse, what’s taken you so long? > Bring us the fitting end that we’ve been counting on > - A23, Welcome, Apocalypse >