[ 
https://issues.apache.org/jira/browse/DRILL-6801?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16653099#comment-16653099
 ] 

Paul Rogers commented on DRILL-6801:
------------------------------------

While this is a wonderful idea, the core problem runs deeper. The client code 
uses far too much of the core Drill code because it uses the Netty stack, value 
vectors, memory allocator, ZooKeeper and more. I believe you will find that the 
common project gets quite large.

Also, once this is split, development will greatly slow because the most 
important files will be in different packages; we'll no longer be able to just 
edit and run tests: we'll need to build the various dependent jars first.

Better would be to build a new client-specific API, especially for JDBC which 
must work with rows. (The "classic" Drill client could stay where it is.)

Of course, I have an opinion about this because I took a whack at creating such 
a best a couple of years ago with 
[Jig|https://github.com/paul-rogers/drill-jig]. Some of the ideas there evolved 
into the RowSet abstractions. We'd still need a new synchronous, simple 
(non-Netty), row-based client API that is designed to be 1) light-weight, and 
2) versioned.

Doing this would strip most of the complexity out of the JDBC jar.

In fact, at the time, [~julianhyde] mentioned that Calcite already has much of 
the mechanism needed. We'd just need to implement the server side (which we 
could do using the RowSet stuff to pull values out of vectors.)

Obviously a larger project than anticipated here, but might be worth thinking 
about the end result before taking on this large amount of refactoring.

> Divide java-exec into separate client, server and common module with separate 
> pom.xml files for each module
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: DRILL-6801
>                 URL: https://issues.apache.org/jira/browse/DRILL-6801
>             Project: Apache Drill
>          Issue Type: Sub-task
>            Reporter: Sorabh Hamirwasia
>            Priority: Major
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to