[jira] [Commented] (IGNITE-4633) Initiate DDL operation through custom discovery message
[ https://issues.apache.org/jira/browse/IGNITE-4633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15894012#comment-15894012 ] Vladimir Ozerov commented on IGNITE-4633: - Looks like my comment about getting participating nodes on clients is wrong. Instead, we should determine the list of participating nodes as message goes through the ring, not on coordinator. Otherwise it will be hard to share info of current schema with concurrently joining nodes. > 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)
[jira] [Commented] (IGNITE-4633) Initiate DDL operation through custom discovery message
[ https://issues.apache.org/jira/browse/IGNITE-4633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15893977#comment-15893977 ] Vladimir Ozerov commented on IGNITE-4633: - [~al.psc], I did some refactoring and simplification. Please see my changes. Currently my only comment is how we determine set of participating nodes. It should happen on client, not on coordinator, because in future client will track alive nodes and complete operation with error if all participants have left the grid. So we should make set of participating nodes final field and initialize it on the client. Current {{nodeState}} field must be renamed to {{nodeErrs}}. By the way, do we really need to collect errors from all nodes? Will it be enough to collect only the very first error and simply ignore init message on further nodes? > 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)
[jira] [Commented] (IGNITE-4633) Initiate DDL operation through custom discovery message
[ https://issues.apache.org/jira/browse/IGNITE-4633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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 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)
[jira] [Commented] (IGNITE-4633) Initiate DDL operation through custom discovery message
[ https://issues.apache.org/jira/browse/IGNITE-4633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15892117#comment-15892117 ] Vladimir Ozerov commented on IGNITE-4633: - Preliminary review comments: 1) Why do we need separate topic for DDL operations? Can we use existing {{QUERY}} topic? 2) Let's revert all changes to {{GridH2IndexingMessageFactory}} and move DDL messages to core. > 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)
[jira] [Commented] (IGNITE-4633) Initiate DDL operation through custom discovery message
[ https://issues.apache.org/jira/browse/IGNITE-4633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15861942#comment-15861942 ] Alexander Paschenko commented on IGNITE-4633: - Fixed, running TC. > 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)
[jira] [Commented] (IGNITE-4633) Initiate DDL operation through custom discovery message
[ https://issues.apache.org/jira/browse/IGNITE-4633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15856617#comment-15856617 ] Alexander Paschenko commented on IGNITE-4633: - Skeleton is done, but have to debug what's been implemented (make sure that all ring/comm messages pass right) and make few fixes architecture wise; ETA is tomorrow > 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)
[jira] [Commented] (IGNITE-4633) Initiate DDL operation through custom discovery message
[ https://issues.apache.org/jira/browse/IGNITE-4633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15854988#comment-15854988 ] Alexander Paschenko commented on IGNITE-4633: - INIT/ACK schema almost finished; main thing left is async notifications of coordinator about progress of subtasks. Overall ETA still is tomorrow. > 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)
[jira] [Commented] (IGNITE-4633) Initiate DDL operation through custom discovery message
[ https://issues.apache.org/jira/browse/IGNITE-4633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15851792#comment-15851792 ] Alexander Paschenko commented on IGNITE-4633: - Working on INIT/ACK/error handling; ETA is Mon/Tue. > 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)
[jira] [Commented] (IGNITE-4633) Initiate DDL operation through custom discovery message
[ https://issues.apache.org/jira/browse/IGNITE-4633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15850117#comment-15850117 ] Alexander Paschenko commented on IGNITE-4633: - Put DDL processor in order (tied its lifecycle w/that of GridQueryProcessor). Working on generic part of distributed DDL API. > 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)