Hi Nick, Thanks for looking into this.
Actually, the branch-2 changes have already been committed. The REST interface doesn't use any Protobuf 2 specific features, so there shouldn't be any wire incompatibilities. I forgot about the branch-3 changes, but I will try to get a PR up in the next few weeks. (After I'm done with the Hadoop packaging changes) Istvan On Wed, Sep 25, 2024 at 2:33 PM Nick Dimiduk <ndimi...@apache.org> wrote: > Hi Istvan, > > I think that your assessment is correct and your proposal makes sense to > me. Let's keep it clear that this is a public interface. > > For the branch-2 changes, I'm less sure. Well, I agree in principle, but > I'm not sure if this can be achieved without a breaking change. I'm happy > to be proven wrong. > > Good on you! > > Thanks, > Nick > > On Fri, Jul 12, 2024 at 12:42 PM Istvan Toth <st...@cloudera.com.invalid> > wrote: > > > HBASE-23975 was the original ticket. > > > > My guess is that since hbase-shaded-protocol was already set up to do the > > compiling and shading, moving it there was the easiest solution. > > I guess that the same logic was behind the rename: since every other > class > > there uses the .shaded. package, change the REST messages the same way. > > > > regards > > Istvan > > > > > > > > > > On Fri, Jul 12, 2024 at 9:48 AM 张铎(Duo Zhang) <palomino...@gmail.com> > > wrote: > > > > > In which jira we did this moving? Are there any reasons why we did > > > this in the past? > > > > > > Istvan Toth <st...@apache.org> 于2024年7月12日周五 03:57写道: > > > > > > > > Hi! > > > > > > > > While working on HBASE-28725, I realized that in HBase 3+ the REST > > > protobuf > > > > definition files have been moved to hbase-shaded-protobuf, and the > > > package > > > > name has also been renamed. > > > > > > > > While I fully agree with the move to using the thirdparty protobuf > > > library > > > > (in fact I'd like to backport that change to 2.x), I think that > moving > > > the > > > > .proto files and renaming the package was not a good idea. > > > > > > > > The REST interface does not use the HBase patched features of the > > > protobuf > > > > library, and if we want to maintain any pretense that the REST > protobuf > > > > encoding is usable by non-java code, then we should not use it in the > > > > future either. > > > > > > > > (If we ever decide to use the patched features for performance > reasons, > > > we > > > > will need to define new protobuf messages for that anyway) > > > > > > > > Protobuf does not use the package name on the wire, so wire > > compatibility > > > > is not an issue. > > > > > > > > In the unlikely case that someone has implemented an independent REST > > > > client that uses protobuf encoding, this will also ensure > compatibility > > > > with the 3.0+ .protoc definitions. > > > > > > > > My proposal is: > > > > > > > > HBASE-28726 <https://issues.apache.org/jira/browse/HBASE-28726> > Revert > > > REST > > > > protobuf package to org.apache.hadoop.hbase.shaded.rest > > > > *This applies only to branch-3+:* > > > > 1. Move the REST .proto files and compiling back to the hbase-rest > > module > > > > (but use the same protoc compiler that we use now) > > > > 2. Revert the package name of the protobuf messages to the original > > > > 3. No other changes, we still use the thirdparty protobuf library. > > > > > > > > The other issue is that on HBase 2.x the REST client still requires > > > > unshaded protobuf 2.5.0 which brings back all the protobuf library > > > > conflicts that were fixed in 3.0 and by hbase-shaded-client. To fix > > this, > > > > my proposal is: > > > > > > > > HBASE-28725 <https://issues.apache.org/jira/browse/HBASE-28725> Use > > > > thirdparty protobuf for REST interface in HBase 2.x > > > > *This applies only to branch-2.x:* > > > > 1. Backport the code changes that use the thirdparty protobuf library > > for > > > > REST to branch-2.x > > > > > > > > With these two changes, the REST code would be almost identical on > > every > > > > branch, easing maintenance. > > > > > > > > What do you think ? > > > > > > > > Istvan > > > > > > > > > -- > > *István Tóth* | Sr. Staff Software Engineer > > *Email*: st...@cloudera.com > > cloudera.com <https://www.cloudera.com> > > [image: Cloudera] <https://www.cloudera.com/> > > [image: Cloudera on Twitter] <https://twitter.com/cloudera> [image: > > Cloudera on Facebook] <https://www.facebook.com/cloudera> [image: > Cloudera > > on LinkedIn] <https://www.linkedin.com/company/cloudera> > > ------------------------------ > > ------------------------------ > > > -- *István Tóth* | Sr. Staff Software Engineer *Email*: st...@cloudera.com cloudera.com <https://www.cloudera.com> [image: Cloudera] <https://www.cloudera.com/> [image: Cloudera on Twitter] <https://twitter.com/cloudera> [image: Cloudera on Facebook] <https://www.facebook.com/cloudera> [image: Cloudera on LinkedIn] <https://www.linkedin.com/company/cloudera> ------------------------------ ------------------------------