[
https://issues.apache.org/jira/browse/KYLIN-2881?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Zhong Yanghong updated KYLIN-2881:
----------------------------------
Description:
A query may need a bunch of hconnections to visit hbase. Anyone of them fails,
the whole query should be interrupted, and all of the related hconnections
should be released for future other queries despite that currently we cannot
interrupt the threads at hbase coprocessor side.
To achieve this goal, one property is added to QueryContext to keep
{{Throwable}}. If any sub-step during the query detects this {{Throwable}}, it
should stop. In {{ExpectedSizeIterator}}, there are two parts where this
detection is needed.
* before putting data to the queue
* during iteration
If exception happens during a query, it should stop its related threads. Thus,
{{QueryStopListener}} is added for this.
was:
A query may need a bunch of hconnections to visit hbase. Anyone of them fails,
the whole query should be interrupted, and all of the related hconnections
should be released for future other queries despite that currently we cannot
interrupt the threads at hbase coprocessor side.
To achieve this goal, there're still some improvements:
* Before putting data to the queue of {{ExpectedSizeIterator}}, check whether
it's timeout & whether exception exist.
* If any exception found in {{ExpectedSizeIterator}}, the callback of
coprocessor call should be return early.
> Improve hbase coprocessor exception handling at kylin server side
> ------------------------------------------------------------------
>
> Key: KYLIN-2881
> URL: https://issues.apache.org/jira/browse/KYLIN-2881
> Project: Kylin
> Issue Type: Improvement
> Components: Query Engine
> Affects Versions: v2.1.0
> Reporter: Zhong Yanghong
> Assignee: Zhong Yanghong
> Fix For: v2.2.0
>
>
> A query may need a bunch of hconnections to visit hbase. Anyone of them
> fails, the whole query should be interrupted, and all of the related
> hconnections should be released for future other queries despite that
> currently we cannot interrupt the threads at hbase coprocessor side.
> To achieve this goal, one property is added to QueryContext to keep
> {{Throwable}}. If any sub-step during the query detects this {{Throwable}},
> it should stop. In {{ExpectedSizeIterator}}, there are two parts where this
> detection is needed.
> * before putting data to the queue
> * during iteration
> If exception happens during a query, it should stop its related threads.
> Thus, {{QueryStopListener}} is added for this.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)