You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Paul Rogers (JIRA)" <ji...@apache.org> on 2018/10/17 07:16:00 UTC

[jira] [Commented] (DRILL-6801) Divide java-exec into separate client, server and common module with separate pom.xml files for each module

    [ 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)