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 >