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

ASF GitHub Bot commented on DRILL-7733:
---------------------------------------

paul-rogers commented on pull request #2149:
URL: https://github.com/apache/drill/pull/2149#issuecomment-767360757


   @luocooong, thanks for the question. There are three advantages of using the 
Java rather than Joda time.
   
   First, Joda was originally written to extend the limited Java date/time 
classes. Most of the Joda functionality, however, was added to Java 8 and so 
Joda has been obsolete since Java 8. Drill no longer builds on Java 7, so the 
need for Joda no longer exists. (Except for the Joda `Period` class, which does 
not exist in Java for some reason.)
   
   The second reason had to due with the JSON writer used for streaming. I 
can't recall the details (this code was written 6+ months ago), but I think the 
underlying JSON classes used Java time, so I would either have to convert from 
Joda to Java on each value; or convert the column accessors to use Java. I 
chose the latter for the reasons above.
   
   The third reason is that the accessor (and other EVF classes) are visible to 
plugins. By using Joda, we force plugin developers to use obsolete libraries 
and to remember the differences between Joda and Java time classes, which is a 
nuisance. By using Java time, we reduce the burden on plugin developers 
somewhat.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Use streaming for REST JSON queries
> -----------------------------------
>
>                 Key: DRILL-7733
>                 URL: https://issues.apache.org/jira/browse/DRILL-7733
>             Project: Apache Drill
>          Issue Type: Improvement
>    Affects Versions: 1.17.0
>            Reporter: Paul Rogers
>            Assignee: Paul Rogers
>            Priority: Major
>             Fix For: 1.19.0
>
>
> Several uses on the user and dev mail lists have complained about the memory 
> overhead when running a REST JSON query: {{http:://node:8047/query.json}}. 
> The current implementation buffers the entire result set in memory, then lets 
> Jersey/Jetty convert the results to JSON. The result is very heavy heap use 
> for larger query result sets.
> This ticket requests a change to use streaming. As each batch arrives at the 
> Screen operator, convert that batch to JSON and directly stream the results 
> to the client network connection, much as is done for the native client 
> connection.
> For backward compatibility, the form of the JSON must be the same as the 
> current API.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to