Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
5.0-alpha
-
None
Description
badquery到900S才被cancel,预期应该是超过300S就被cancel
复现SQL见附件 test.sql
Root Cause
从这条 SQL 来看,卡在了 RestoreFromComputedColumn 这个里面,这个操作特别耗时,里面会最大调用 10次,对于这条 SQL,第一次耗时将近花了 250s,所以走到这个逻辑里面就需要等待执行完毕才能退出来,查询被取消。
此外,在 SparkSqlClient 这里面在取数据的时候也存在类似问题。
Fix Design
RestoreFromComputedColumn逻辑里面增加两个取消的锚点,阶段性执行完毕的时候如果用户发出了取消请求,在锚点处进行中断检查。
对于SparkSqlClient迭代器取数增加锚点,每1000条会做一次检查。