Hello,

Currently the jdbc driver contains lots of hive code; which are not needed for 
the driver to function properly - jdbc-standalone is currently a 60M binary! :)

I've opened a ticket, to explore the possibilites what can be done in this 
aspect to reduce jdbc's dependencies.

I was able to remove most of the service and the metastore dependencies - by 
introducing 2 new modules: I called them metastore-api and service-client.
As a change like this would mean that the released jars name and purpose would 
change - I didn't wanted to just file a jira about it :)

So...I would like to ask for opinions or any concerns against doing the 
following:

1) Splitting the metastore module; the new module would be named as metastore-X 
(my proposals for X are: client,rpc,if or api).
  * the dependency would contain the thrift interface
  * and possibly a few other source files which are needed to use it.

2) Splitting the service module; the new module would be named service-X (my 
propsal for X would be client)
  * the module would contain auth related classes
  * some other basic stuffs like RowSet
  * connected change: jdbc driver would change the support of embedded mode to 
only make it usable if 'service' is loaded onto the classpath

With these two modules available, the size of the jdbc driver have dropped to 
about 21M.

more info:
https://issues.apache.org/jira/browse/HIVE-16214

regards,
Zoltan

Reply via email to