[
https://issues.apache.org/jira/browse/KYLIN-1872?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Zhong Yanghong updated KYLIN-1872:
----------------------------------
Attachment: APACHE-KYLIN-1872.patch
> Make query visible and interruptible, improve server's stablility
> -----------------------------------------------------------------
>
> Key: KYLIN-1872
> URL: https://issues.apache.org/jira/browse/KYLIN-1872
> Project: Kylin
> Issue Type: Improvement
> Components: Query Engine
> Reporter: Ma Gang
> Assignee: Ma Gang
> Attachments: APACHE-KYLIN-1872.patch,
> query_visible_interruptable-1.4rc.patch,
> query_visible_interruptable-master.patch
>
>
> Problem:
> 1. Large query result will break kylin server, for example: select * from
> fact_table. Even when properties "kylin.query.scan.threshold" and
> "kylin.query.mem.budget" are set properly, OOM still happens, because the
> hbase rpc thread is not interrupted, the result will continually go to kylin
> server. And server will run OOM quickly when there are multiple such queries.
> 2. Tow many slow queries will occupy all tomcat threads, and make server
> unresponsed.
> 3. There's no corelation id for a specified query, so it is hard to find the
> rpc log for a specified query, if there are too many queries running
> concurrently.
> Solution:
> 1. Interrupt the rpc thread and main query thread when return result size
> larger than the config limit size.
> 2. Make query visible. Admin can view all running queries, and detail of each
> query.
> Split the query into following steps:
> 1) sql parse
> 2) cube plan
> 3) query cache
> 4) multiple cube segment query
> a. for each segment request, have muliple endpoint range request.
> b. for each endpoint range request, have multiple coprocessor request.
> c. for each coprocessor request, have multiple region server rpc.
> Admin can view the startTime/endTime of each step, and the thread stack
> trace if the step is running.
> 3. Add query id as corelation id in the rpc log.
> 4. Admin can interrupt a running query, to release the thread, memory, etc.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)