Interesting. Can you elaborate which parts of Avatica are useful as a framework for writing JDBC drivers ? I always thought of Avatica as a small and focused project implementing a JDBC over HTTP proxy, to complement Calcite which is the actual framework for writing SQL databases.
Is it the type system ? Or the property handling ? What's left of Avatica if you factor out the networking parts ? I suspect that projects that depend on Avatica without using the network part may not be built optimally. JDBC is a rather small specification, and most of the implementation is very DB specific. Istvan On Tue, Oct 29, 2024 at 8:47 PM Laurent Goujon <[email protected]> wrote: > Hi, > > I'd like to submit an idea regarding the current coupling of Avatica with > protobuf and jackson. > > Avatica is both a framework to write a JDBC driver (used by Drill and > Flight SQL JDBC drivers) AND also a client/server protocol (used by Phoenix > and Druid). > > Today most of the code is under the core module, and it handles both > aspects at the same time. But for projects only using the framework part, > this results in the introduction of extra dependencies which may either > conflict with their own use of those dependencies, or one could use the > shaded version which relocates those dependencies but this result in an > increase in artifact size (and also extra work re CVE analysis). > > To illustrate the current situation: > * avatica jar (1.25.0) is 7MB (~20MB uncompressed) > * avatica classes only represent less than 4MB (out of 20MB), 800kb if you > remove proto, remote and ha classes. > > The ideal scenario is that core Avatica classes do not depend on protobuf > and jackson (possibly by moving the protocol part out of core to make sure > concerns stay separated) but the effort is not trivial and would result in > some API breakage. > > Would people be interested in addressing this issue, and okay to introduce > some public API breakage? Or are there other alternatives to be considered? > > Cheers, > > Laurent > -- *István Tóth* | Sr. Staff Software Engineer *Email*: [email protected] 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> ------------------------------ ------------------------------
