I apologize if my previous phrasing was unclear. I acknowledge that the
current implementation of RemoteHTable/RemoteAdmin is not well-maintained.
However, the goal is to improve and properly support it before integrating
it back into the main source.

We already have o.a.h.h.r.Client, a wrapper around the HttpClient, which is
currently supported in the REST module of HBase. Building and supporting
Table/Admin API on top of this client would be similar to what we have for
Thrift[1][2]. This serves as a shorthand for developers who are already
using the Java client for latency and throughput-sensitive use cases but
still need to migrate some applications based on REST.

[1]
https://github.com/apache/hbase/blob/master/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/client/ThriftAdmin.java
[2]
https://github.com/apache/hbase/blob/master/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/client/ThriftTable.java


On Thu, 13 Jun 2024 at 09:48, Andrew Purtell <andrew.purt...@gmail.com>
wrote:

> People were asking of us, of those classes meant for testing only, to do
> all the things that a well maintained and feature-full http client should.
> Apache HttpClient already exists and has years of development, hundreds of
> man hours of value. Even if we wanted to duplicate that effort we don’t
> have those resources. So please let the current rest client remain test
> only code.
>
> Speaking of HttpClient, if a contributor here does wish to put something
> forward for user use, consider building something that can be supportable
> by basing it on HttpClient and designing it so we stay out of the way of
> users taking advantage of all that HttpClient had to offer.
>
> > On Jun 12, 2024, at 10:16 PM, Ankit Singhal <ankitsingha...@gmail.com>
> wrote:
> >
> > Hello,
> >
> > *Context for discussion*:
> >
> > These classes were recently relocated from "src/main" to "src/test" under
> > HBASE-24115, aligning with the original contributor's initial intention
> of
> > using them only for testing. Therefore, I'm raising this in an email to
> > initiate discussion with the updated information.
> >
> > At Cloudera, we've noticed a growing adoption of HBase in cloud
> > environments. This shift has highlighted concerns regarding network
> > connectivity requirements between clients and HBase regionservers,
> > particularly for remote clients. To address these concerns, we are
> looking
> > to utilize standard web protocols such as HTTP. These protocols enable
> > easier integration with various cloud services by providing a single
> > endpoint for access and simplifying networking needs. As a result, more
> > users are interested in using REST servers to meet their requirements.
> > Istvan has put considerable effort into testing and improving the
> > performance of REST servers, as seen in JIRAs like HBASE-28646,
> > HBASE-28613, HBASE-28626, and HBASE-28556 to achieve this target.
> >
> > *Issue*:
> >
> > However, Users with applications currently using the Java client are
> > encountering challenges in transitioning to REST due to the significant
> > code rewriting required. By implementing the Admin and Table interfaces,
> we
> > can enable these users to migrate to REST with minimal adjustments.
> >
> > *Other Protocol Implementations with Java Public APIs: *
> > Similar interfaces have recently been developed for Thrift under
> > HBASE-21661.
> >
> > *Proposed Changes:* Currently, Istvan focuses on addressing the
> performance
> > and security aspects of these implementations, with efforts like
> > HBASE-28540 and rewriting Rest Client to support different authentication
> > options, etc. via HBASE-28501,HBASE-28649, and HBASE-28500, which
> > significantly strengthened the implementation. Hence, we want to go ahead
> > and move this implementation back to "src/main".
> >
> > Please inform us of any concerns you may have, otherwise, we would like
> to
> > proceed with the PR.
> >
> >
> > Regards,
> >
> > Ankit Singhal
>

Reply via email to