[jira] [Updated] (PHOENIX-5945) TaskRegionObserver can kick off the same task multiple times if SYSTEM.TASK has split
[ https://issues.apache.org/jira/browse/PHOENIX-5945?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chinmay Kulkarni updated PHOENIX-5945: -- Fix Version/s: (was: 4.16.0) 4.17.0 4.16.1 > TaskRegionObserver can kick off the same task multiple times if SYSTEM.TASK > has split > - > > Key: PHOENIX-5945 > URL: https://issues.apache.org/jira/browse/PHOENIX-5945 > Project: Phoenix > Issue Type: Bug >Affects Versions: 4.15.0 >Reporter: Chinmay Kulkarni >Priority: Major > Fix For: 5.1.0, 4.16.1, 4.17.0 > > > We don't specify a split policy for > [SYSTEM.TASK|https://github.com/apache/phoenix/blob/5f9364db7e4925229704706e148e62f4cf4ec4c2/phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java#L381], > so by default it will be allowed to split. Now if SYSTEM.TASK spans multiple > regions, each region's > [postOpen|https://github.com/apache/phoenix/blob/5f9364db7e4925229704706e148e62f4cf4ec4c2/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/TaskRegionObserver.java#L137] > schedules the SelfHealingTask at the specified interval and so [each region > will run a FTS on the > table|https://github.com/apache/phoenix/blob/5f9364db7e4925229704706e148e62f4cf4ec4c2/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/TaskRegionObserver.java#L159] > and try to kick-off all the incomplete and non-failed tasks. > This can lead to the same tasks being kicked off multiple times as a corner > race condition in spite of [this > check|https://github.com/apache/phoenix/blob/5f9364db7e4925229704706e148e62f4cf4ec4c2/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/TaskRegionObserver.java#L187-L195] > (which is another FTS) and also lead to unnecessary extra load on the server. > We do not explicitly outline that tasks need to be idempotent, so we should > handle this properly in the TaskRegionObserver so that each region is only > responsible for tasks lying within its boundaries. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Updated] (PHOENIX-5945) TaskRegionObserver can kick off the same task multiple times if SYSTEM.TASK has split
[ https://issues.apache.org/jira/browse/PHOENIX-5945?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chinmay Kulkarni updated PHOENIX-5945: -- Summary: TaskRegionObserver can kick off the same task multiple times if SYSTEM.TASK has split (was: TaskRegionObserver can kick off the same tasks multiple times if SYSTEM.TASK has split) > TaskRegionObserver can kick off the same task multiple times if SYSTEM.TASK > has split > - > > Key: PHOENIX-5945 > URL: https://issues.apache.org/jira/browse/PHOENIX-5945 > Project: Phoenix > Issue Type: Bug >Affects Versions: 4.15.0 >Reporter: Chinmay Kulkarni >Priority: Major > Fix For: 5.1.0, 4.16.0 > > > We don't specify a split policy for > [SYSTEM.TASK|https://github.com/apache/phoenix/blob/5f9364db7e4925229704706e148e62f4cf4ec4c2/phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java#L381], > so by default it will be allowed to split. Now if SYSTEM.TASK spans multiple > regions, each region's > [postOpen|https://github.com/apache/phoenix/blob/5f9364db7e4925229704706e148e62f4cf4ec4c2/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/TaskRegionObserver.java#L137] > schedules the SelfHealingTask at the specified interval and so [each region > will run a FTS on the > table|https://github.com/apache/phoenix/blob/5f9364db7e4925229704706e148e62f4cf4ec4c2/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/TaskRegionObserver.java#L159] > and try to kick-off all the incomplete and non-failed tasks. > This can lead to the same tasks being kicked off multiple times as a corner > race condition in spite of [this > check|https://github.com/apache/phoenix/blob/5f9364db7e4925229704706e148e62f4cf4ec4c2/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/TaskRegionObserver.java#L187-L195] > (which is another FTS) and also lead to unnecessary extra load on the server. > We do not explicitly outline that tasks need to be idempotent, so we should > handle this properly in the TaskRegionObserver so that each region is only > responsible for tasks lying within its boundaries. -- This message was sent by Atlassian Jira (v8.3.4#803005)