[
https://issues.apache.org/jira/browse/KYLIN-5526?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17716130#comment-17716130
]
Yaguang Jia commented on KYLIN-5526:
------------------------------------
h2. Root Cause
The previous logic goes like this: determine whether the number of asynchronous
job reaches the limit-"if not, a new asynchronous thread executes the
asynchronous query, and count-1 after the end of the count+1,job
Check here that count and count+1 are not atomic, and there will be problems in
concurrency, resulting in more job running than the setting
之前的逻辑是这样:判断异步job数目是否达到限制-》没有则新起一个异步线程执行异步查询,count+1,job结束后count-1
这里检查count和count+1 不是原子的,在并发的时候会出现问题,导致运行的job数目超过设置
h2. Fix Design
The logic is changed to check the job count when the request comes in. If the
limit count+1 is not reached, an exception is thrown when the limit is reached.
Here, it is encapsulated as an atomic operation, and then a new asynchronous
query is created to execute the query, and the asynchronous thread finally
count-1.
逻辑换成 请求进来的时候检查job
count,若没有达到限制这count+1,达到限制就抛异常,这里封装成原子操作,然后新起一个异步查询来执行查询,异步线程finally count-1。
> After setting the upper limit of concurrent asynchronous queries, submitting
> multiple asynchronous queries at the same time may cause the number of
> asynchronous queries to be greater than the set upper limit
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: KYLIN-5526
> URL: https://issues.apache.org/jira/browse/KYLIN-5526
> Project: Kylin
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 5.0-alpha
> Reporter: Yaguang Jia
> Assignee: Yaguang Jia
> Priority: Major
> Fix For: 5.0-beta
>
>
> When encountering a large number of concurrent asynchronous query requests,
> the number of asynchronous query jobs will exceed the parameter limit, which
> needs to be fixed
>
> 在遇到并发异步查询请求大的时候,异步查询job的数目会大于参数限制,需要修复
--
This message was sent by Atlassian Jira
(v8.20.10#820010)