[
https://issues.apache.org/jira/browse/TAJO-1430?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14371005#comment-14371005
]
Hyunsik Choi edited comment on TAJO-1430 at 3/20/15 8:59 AM:
-------------------------------------------------------------
The problem definition looks good. But, the solution is naive due to the
following reasons:
1) the same queries with different parameters should be parsed every time (low
cache hit ratio).
2) the same queries with different parameters will be all kept in the cache.
3) there is no cache invalidation method
The better solution may be an approach like PreparedStatement.
http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
This approach allows DB system to prepare many thing before execution. Also, it
separates parameters represented by '?' from SQL statements. So, we will have
more opportunities to increase the cache hit ratio.
In addition, this parsed statements should be kept for each session. It would
be better in terms of security and cache management.
was (Author: hyunsik):
The problem definition looks good. But, the solution is naive because the patch
keeps all SQL statements in Master. The same queries with different parameter
should be parsed every time, and they all will be kept in the cache.
The better solution may be an approach like PreparedStatement.
http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
This approach allows DB system to prepare many thing before execution. Also, it
separates parameters represented by '?' from SQL statements. So, we will have
more opportunities to increase the cache hit ratio.
In addition, this parsed statements should be kept for each session. It would
be better in terms of security and cache management.
> Implement Query Parsing Result Caching
> --------------------------------------
>
> Key: TAJO-1430
> URL: https://issues.apache.org/jira/browse/TAJO-1430
> Project: Tajo
> Issue Type: New Feature
> Components: parser
> Affects Versions: 0.10.0
> Reporter: Dongjoon Hyun
> Assignee: Dongjoon Hyun
> Fix For: 0.10.1
>
> Attachments: TAJO-1430.patch, long.sql, middle.sql, wide_table.sql
>
>
> There are wide tables with many many columns. Moveover, BI tools generate
> very complex queries whose size is several MB. Although Tajo executes those
> queries very fast in a few seconds, the total time of UX is slow.
> To become a fastest Hadoop DW, we need this following feature.
> {code:sql}
> time tsql -f middle.sql > /dev/null
> real 0m19.058s
> user 0m2.148s
> sys 0m0.268s
> time tsql -f ~/tajo/middle.sql > /dev/null
> real 0m18.496s
> user 0m2.119s
> sys 0m0.240s
> $ time ./tsql -f ~/tajo/long.sql > /dev/null
> real 0m36.974s
> user 0m2.305s
> sys 0m0.272s
> $ time ./tsql -f ~/tajo/long.sql > /dev/null
> real 0m4.103s
> user 0m2.237s
> sys 0m0.249s
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)