[ 
https://issues.apache.org/jira/browse/IGNITE-4633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15892133#comment-15892133
 ] 

Vladimir Ozerov commented on IGNITE-4633:
-----------------------------------------

3) There is no need for {{GridDdlCommand}} interface. Let's remove it and move 
3 existing method to DDL processor. This way we will follow our standard 
approach when callbacks are placed directly inside relevant processor:
{code}
class DdlStatementsProcessor {
    Collection<ClusterNode> filterNodes(String cacheName, 
AffinityTopologyVersion topVer);
    void onCreateIndexInit(CreateIndexArguments args);
    void onCreateIndexAck(CreateIndexArguments args);
}
{code}

> Initiate DDL operation through custom discovery message
> -------------------------------------------------------
>
>                 Key: IGNITE-4633
>                 URL: https://issues.apache.org/jira/browse/IGNITE-4633
>             Project: Ignite
>          Issue Type: Sub-task
>          Components: SQL
>            Reporter: Vladimir Ozerov
>            Assignee: Alexander Paschenko
>             Fix For: 2.0
>
>
> Design considerations:
> 1) Create generic DDL custom discovery message pair - {{INIT}} and {{ACK}} 
> messages - which will hold concrete DDL commands.
> 2) Originator must generate unique message ID to be able to track it later.
> 3) Coordinator calculates all participants through affinity API and adds them 
> to message.
> 4) {{INIT}} message goes through the ring and:performs some fast preliminary 
> checks if necessary and collects error; in particular it may verify whether 
> schema change is valid to allow for fail-fast client notification.;
> 5) If at least one error occurs during {{INIT}} stage, originator may throw 
> exception to the user.
> 6) {{ACK}} message schedules asynchronous execution of the command.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to