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

Reply via email to