I approved the PR because the changes lgtm, but did leave a discussion point there for your consideration.
On Tue, Jun 11, 2024 at 1:19 AM Duo Zhang <zhang...@apache.org> wrote: > We have several deprecated methods in Cell interface, like > getSequenceId and tag related ones, which are marked as deprecated > since 2.0.0 and should be removed in 3.0.0. Most of them are marked as > deprecated in HBASE-19112. > > After investigating, I found that it is not an easy work... > > We have 3 levels for the Cell interface > > Cell -> RawCell -> ExtendedCell > > Where Cell is the Public API for client side usage, RawCell is for CPs > where we expose the tag related APIs, and ExtendedCell is for server > side usage, where we expose all the internal stuff, like sequence id. > > In HBASE-19550, we introduced a CellWrapper as we think maybe CPs will > return a Cell which is not an ExtendedCell at server side, we need to > wrap it so at server side we always get an ExtendedCell. So if we > remove the tag and sequence id related methods, CellWrapper will be > broken. > > For me, I do not think we need the CellWrapper. In general, all actual > Cell implementation classes in our code base implement the > ExtendedCell interface, i.e, we can simply consider all Cells are > actually ExtendedCells. The only reason we introduce the Cell > interface, is to hide internal stuff from client public API, does not > mean we want users to implement their own Cell. > > So the plan is to change server side code use ExtendedCell as much as > possible in HBASE-28644, a draft PR is already there for review[1]. > This will be landed to both 3.x and at least branch-2(I'm not sure if > it worth to also land on branch-2.6 and branch-2.5). > And starting from 3.0.0, we should make clear that all Cell instances > should be created via the CellBuilder related APIs, other Cell > implementations are not allowed. So on 3.0.0, we should treat Cell as > ExtendedCell everywhere in our code base, and also remove the > CellWrapper class, then we could finally remove the deprecated methods > in the Cell interface. > > Thoughts? > > Thanks. > > 1. https://github.com/apache/hbase/pull/5976 > -- 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