[ https://issues.apache.org/jira/browse/IGNITE-24420?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Evgeny Stanilovsky updated IGNITE-24420: ---------------------------------------- Description: Perform checks on coordinator node. Check zone exist, all zone related partitions are in operable state (i.e. majority is not lost). 1. Check and if all ok it need to change through CAS NOTHING into GlobalOperationStatus#INITIATED (don`t forget term) Flow: # get message on CPCC coordinator # perform related checks on coordinator, on failure - finish message future with exception. # change state CAS: NOTHING -> INITIATED # decide that message future completed when CAS finished # message future need to complete exceptionally if CAS failed Tests: # Cover zone without majority # Two sequential CPCC operations with equal zone, one need to fail # Start cpcc, cancel cpcc and further new cpcc start is possible was: Perform checks on coordinator node. Check zone exist, all zone related partitions are in operable state (i.e. majority is not lost). 1. Check and if all ok it need to change through CAS NOTHING into GlobalOperationStatus#INITIATED (don`t forget term) Flow: # get message on CPCC coordinator # perform related checks on coordinator, on failure - finish message future with exception. # change state CAS: NOTHING -> INITIATED # decide that message future completed when CAS finished # message future need to complete exceptionally if CAS failed Tests: # Cover zone without majority # Two sequential CPCC operations with equal zone, one need to fail > CPCC. Implement pre CPCC initialization checks > ---------------------------------------------- > > Key: IGNITE-24420 > URL: https://issues.apache.org/jira/browse/IGNITE-24420 > Project: Ignite > Issue Type: Task > Components: sql > Affects Versions: 3.0 > Reporter: Evgeny Stanilovsky > Priority: Major > Labels: ignite-3 > > Perform checks on coordinator node. > Check zone exist, all zone related partitions are in operable state (i.e. > majority is not lost). > 1. Check and if all ok it need to change through CAS NOTHING into > GlobalOperationStatus#INITIATED (don`t forget term) > Flow: > # get message on CPCC coordinator > # perform related checks on coordinator, on failure - finish message future > with exception. > # change state CAS: NOTHING -> INITIATED > # decide that message future completed when CAS finished > # message future need to complete exceptionally if CAS failed > Tests: > # Cover zone without majority > # Two sequential CPCC operations with equal zone, one need to fail > # Start cpcc, cancel cpcc and further new cpcc start is possible -- This message was sent by Atlassian Jira (v8.20.10#820010)