Re: [DISCUSSION] IEP-103: Code Deployment in Apache Ignite 3
One more change to the original IEP. The "Dependency resolving and class loading" section [1] proposes to throw an instance of ClassNotFoundException for cases where a deployment unit is not found or can't be used. The same exception should be thrown in cases where a class loader is not able to load a required class. The problem here is existing non-Java clients which should be able to distinguish a regular standard Java exception from Ignite specific exception and provide to a user a descriptive error message with an error code. Also a compute job/task could throw a task specific or an unexpected exception. It also should be taken into account and a separate public exception should be added for this purpose. Given this I propose to add two public exceptions: - DeploymentUnitUnavailableException - have to be thrown if a required deployment unit is not found (actually it is not deployed) or if a required deployment unit is obsolete and can't be used in a code execution. - ComputeExecutionException - a CompletableFuture instance returned from the Compute API method has to be completed with an instance of this exception in case of any other error raised during code execution. Corresponding changes have been made to the IEP. 1. https://cwiki.apache.org/confluence/display/IGNITE/IEP-103%3A+Code+Deployment#IEP103:CodeDeployment-Dependencyresolvingandclassloading On Tue, May 23, 2023 at 8:19 PM Andrey Gura wrote: > > Hi, Igniters! > > Please take a look at the proposal for Code Deployment functionality > in Apache Ignite 3 [1]. > > Thanks for any feedback! > > 1. > https://cwiki.apache.org/confluence/display/IGNITE/IEP-103%3A+Code+Deployment
Re: [DISCUSSION] IEP-103: Code Deployment in Apache Ignite 3
Folks, due to the impossibility of timely detection of changing of a leader in a replication group I've changed the section "Unit deployment process" [1]. Now it is enough to deploy a deployment unit to a replica group majority without mandatory inclusion of a leader. 1. https://cwiki.apache.org/confluence/display/IGNITE/IEP-103:+Code+Deployment#IEP103:CodeDeployment-Unitdeploymentprocess On Tue, May 23, 2023 at 8:19 PM Andrey Gura wrote: > > Hi, Igniters! > > Please take a look at the proposal for Code Deployment functionality > in Apache Ignite 3 [1]. > > Thanks for any feedback! > > 1. > https://cwiki.apache.org/confluence/display/IGNITE/IEP-103%3A+Code+Deployment
Re: [DISCUSSION] IEP-103: Code Deployment in Apache Ignite 3
Let me also include the long descriptions so it should hopefully be clearer now: In REPL mode: Usage: cluster unit list [-hv] [-u=] [--status=[, ...]]... [ [--version=]] Shows a list of deployed units Deployment unit id -h, --helpShow help for the specified command --status=[,...] Filters out deployment unit by status -u, --cluster-endpoint-url= URL of cluster endpoint -v, --verbose Show additional information: logs, REST calls --version= Filters out deployment unit by version (exact match assumed) Usage: node unit list [-hv] [--status=[,...]]... [ [--version=]] [-u= | -n=] Shows a list of deployed units Deployment unit id -h, --help Show help for the specified command -n, --node-name= Name of an Ignite node --status=[,...] Filters out deployment unit by status -u, --node-url= URL of an Ignite node -v, --verbose Show additional information: logs, REST calls --version=Filters out deployment unit by version (exact match assumed) In non-REPL mode: Usage: ignite cluster unit list [-hv] [-p=] [-u=] [--status=[,...]]... [ [--version=]] Shows a list of deployed units Deployment unit id -h, --helpShow help for the specified command -p, --profile= Profile name --status=[,...] Filters out deployment unit by status -u, --cluster-endpoint-url= URL of cluster endpoint -v, --verbose Show additional information: logs, REST calls --version= Filters out deployment unit by version (exact match assumed) Usage: ignite node unit list [-hv] [-p=] [--status=[, ...]]... [ [--version=]] [-u= | -n=] Shows a list of deployed units Deployment unit id -h, --help Show help for the specified command -n, --node-name= URL of ignite node -p, --profile= Profile name --status=[,...] Filters out deployment unit by status -u, --node-url= URL of an Ignite node -v, --verbose Show additional information: logs, REST calls --version=Filters out deployment unit by version (exact match assumed) On Mon, May 29, 2023 at 11:30 AM Vadim Pakhnushev wrote: > Andrey, > > For reference, this is the short usage help of these commands in REPL mode: > Usage: cluster unit list [-hv] [-u=] > [--status=[,...]]... > [ [--version=]] > Usage: node unit list [-hv] [-u= | -n=] > [--status=[,...]]... > [ [--version=]] > > And in non-REPL mode: > Usage: ignite cluster unit list [-hv] [-p=] [-u=] > [--status=[,...]]... > [ [--version=]] > Usage: ignite node unit list [-hv] [-p=] [-u=] > [--status=[,...]]... > [ [--version=]] > > The cluster/node urls/names options are consistent across all cluster/node > specific commands, like the cluster/node config or cluster init and node > metric. > > On Fri, May 26, 2023 at 11:04 AM Vadim Pakhnushev > wrote: > >> Andrey, >> Sorry, I omitted the `--node-url` option which is common for all `node >> ...` commands. >> So in the non-REPL mode there's a `--node-url` option, and in the REPL >> mode there's also a `--node-name`, which takes a consistent id. >> >> On Thu, May 25, 2023 at 11:03 PM Andrey Gura wrote: >> >>> Vadim, >>> >>> > Likewise, the `node unit list` command will list only node statuses so >>> the >>> `nodeId` is redundant because it will be called on the particular node >>> endpoint. >>> >>> I still don't understand about the `node unit list`. The suggested >>> syntax is: >>> >>> node unit list [nodeId [--version version]] [--status ...] >>> >>> If nodeId is redundant so how will the CLI know a target node? It >>> means that we have to specify the node. But `nodeId` is not mandatory. >>> I'm confused. It seems that the suggested syntax is not correct. >>> >>> On Thu, May 25, 2023 at 6:40 PM Vadim Pakhnushev >>> wrote: >>> > >>> > The `nodeId` parameter is not required for the `cluster unit list` >>> because >>> > we will list only cluster statuses. >>> > Likewise, the `node unit list` command will list only node statuses so >>> the >>> > `nodeId` is redundant because it will be called on the particular node >>> > endpoint. >>> > >>> > On Thu, May 25, 2023 at 6:18 PM Andrey Gura wrote: >>> > >>> > > Hi, Vadim! >>> > > >>> > > Why is the `nodeId` parameter not required in the sugg
Re: [DISCUSSION] IEP-103: Code Deployment in Apache Ignite 3
Andrey, For reference, this is the short usage help of these commands in REPL mode: Usage: cluster unit list [-hv] [-u=] [--status=[,...]]... [ [--version=]] Usage: node unit list [-hv] [-u= | -n=] [--status=[,...]]... [ [--version=]] And in non-REPL mode: Usage: ignite cluster unit list [-hv] [-p=] [-u=] [--status=[,...]]... [ [--version=]] Usage: ignite node unit list [-hv] [-p=] [-u=] [--status=[,...]]... [ [--version=]] The cluster/node urls/names options are consistent across all cluster/node specific commands, like the cluster/node config or cluster init and node metric. On Fri, May 26, 2023 at 11:04 AM Vadim Pakhnushev wrote: > Andrey, > Sorry, I omitted the `--node-url` option which is common for all `node > ...` commands. > So in the non-REPL mode there's a `--node-url` option, and in the REPL > mode there's also a `--node-name`, which takes a consistent id. > > On Thu, May 25, 2023 at 11:03 PM Andrey Gura wrote: > >> Vadim, >> >> > Likewise, the `node unit list` command will list only node statuses so >> the >> `nodeId` is redundant because it will be called on the particular node >> endpoint. >> >> I still don't understand about the `node unit list`. The suggested syntax >> is: >> >> node unit list [nodeId [--version version]] [--status ...] >> >> If nodeId is redundant so how will the CLI know a target node? It >> means that we have to specify the node. But `nodeId` is not mandatory. >> I'm confused. It seems that the suggested syntax is not correct. >> >> On Thu, May 25, 2023 at 6:40 PM Vadim Pakhnushev >> wrote: >> > >> > The `nodeId` parameter is not required for the `cluster unit list` >> because >> > we will list only cluster statuses. >> > Likewise, the `node unit list` command will list only node statuses so >> the >> > `nodeId` is redundant because it will be called on the particular node >> > endpoint. >> > >> > On Thu, May 25, 2023 at 6:18 PM Andrey Gura wrote: >> > >> > > Hi, Vadim! >> > > >> > > Why is the `nodeId` parameter not required in the suggested syntax of >> > > `cluster unit list` and `node unit list` commands? >> > > >> > > What does the `nodeId` parameter mean in the `cluster unit list` >> command? >> > > >> > > >> > > On Thu, May 25, 2023 at 12:34 PM Vadim Pakhnushev >> > > wrote: >> > > > >> > > > Hi Andrey! >> > > > >> > > > I have a small suggestion regarding the design of the CLI commands. >> > > > Since we already have a cluster/node namespaces in the CLI, I'd >> suggest >> > > > moving the deploy/undeploy/list commands to the cluster subcommand, >> and >> > > > rather than using --node option to list the units on the particular >> node, >> > > > use node namespace for the list command which will be operating on >> the >> > > node >> > > > level. >> > > > So the whole list of commands would be: >> > > > cluster unit deploy/undeploy - stay the same >> > > > cluster unit list [nodeId [--version version]] [--status ...] - >> without >> > > the >> > > > --node option >> > > > node unit list [nodeId [--version version]] [--status ...] - same >> > > filters, >> > > > but will show the node unit statuses rather than cluster statuses. >> > > > >> > > > WDYT? >> > > > >> > > > Thanks, >> > > > Vadim >> > > > >> > > > On Tue, May 23, 2023 at 8:19 PM Andrey Gura >> wrote: >> > > > >> > > > > Hi, Igniters! >> > > > > >> > > > > Please take a look at the proposal for Code Deployment >> functionality >> > > > > in Apache Ignite 3 [1]. >> > > > > >> > > > > Thanks for any feedback! >> > > > > >> > > > > 1. >> > > > > >> > > >> https://cwiki.apache.org/confluence/display/IGNITE/IEP-103%3A+Code+Deployment >> > > > > >> > > >> >
Re: [DISCUSSION] IEP-103: Code Deployment in Apache Ignite 3
Andrey, Sorry, I omitted the `--node-url` option which is common for all `node ...` commands. So in the non-REPL mode there's a `--node-url` option, and in the REPL mode there's also a `--node-name`, which takes a consistent id. On Thu, May 25, 2023 at 11:03 PM Andrey Gura wrote: > Vadim, > > > Likewise, the `node unit list` command will list only node statuses so > the > `nodeId` is redundant because it will be called on the particular node > endpoint. > > I still don't understand about the `node unit list`. The suggested syntax > is: > > node unit list [nodeId [--version version]] [--status ...] > > If nodeId is redundant so how will the CLI know a target node? It > means that we have to specify the node. But `nodeId` is not mandatory. > I'm confused. It seems that the suggested syntax is not correct. > > On Thu, May 25, 2023 at 6:40 PM Vadim Pakhnushev > wrote: > > > > The `nodeId` parameter is not required for the `cluster unit list` > because > > we will list only cluster statuses. > > Likewise, the `node unit list` command will list only node statuses so > the > > `nodeId` is redundant because it will be called on the particular node > > endpoint. > > > > On Thu, May 25, 2023 at 6:18 PM Andrey Gura wrote: > > > > > Hi, Vadim! > > > > > > Why is the `nodeId` parameter not required in the suggested syntax of > > > `cluster unit list` and `node unit list` commands? > > > > > > What does the `nodeId` parameter mean in the `cluster unit list` > command? > > > > > > > > > On Thu, May 25, 2023 at 12:34 PM Vadim Pakhnushev > > > wrote: > > > > > > > > Hi Andrey! > > > > > > > > I have a small suggestion regarding the design of the CLI commands. > > > > Since we already have a cluster/node namespaces in the CLI, I'd > suggest > > > > moving the deploy/undeploy/list commands to the cluster subcommand, > and > > > > rather than using --node option to list the units on the particular > node, > > > > use node namespace for the list command which will be operating on > the > > > node > > > > level. > > > > So the whole list of commands would be: > > > > cluster unit deploy/undeploy - stay the same > > > > cluster unit list [nodeId [--version version]] [--status ...] - > without > > > the > > > > --node option > > > > node unit list [nodeId [--version version]] [--status ...] - same > > > filters, > > > > but will show the node unit statuses rather than cluster statuses. > > > > > > > > WDYT? > > > > > > > > Thanks, > > > > Vadim > > > > > > > > On Tue, May 23, 2023 at 8:19 PM Andrey Gura > wrote: > > > > > > > > > Hi, Igniters! > > > > > > > > > > Please take a look at the proposal for Code Deployment > functionality > > > > > in Apache Ignite 3 [1]. > > > > > > > > > > Thanks for any feedback! > > > > > > > > > > 1. > > > > > > > > > https://cwiki.apache.org/confluence/display/IGNITE/IEP-103%3A+Code+Deployment > > > > > > > > >
Re: [DISCUSSION] IEP-103: Code Deployment in Apache Ignite 3
Vadim, > Likewise, the `node unit list` command will list only node statuses so the `nodeId` is redundant because it will be called on the particular node endpoint. I still don't understand about the `node unit list`. The suggested syntax is: node unit list [nodeId [--version version]] [--status ...] If nodeId is redundant so how will the CLI know a target node? It means that we have to specify the node. But `nodeId` is not mandatory. I'm confused. It seems that the suggested syntax is not correct. On Thu, May 25, 2023 at 6:40 PM Vadim Pakhnushev wrote: > > The `nodeId` parameter is not required for the `cluster unit list` because > we will list only cluster statuses. > Likewise, the `node unit list` command will list only node statuses so the > `nodeId` is redundant because it will be called on the particular node > endpoint. > > On Thu, May 25, 2023 at 6:18 PM Andrey Gura wrote: > > > Hi, Vadim! > > > > Why is the `nodeId` parameter not required in the suggested syntax of > > `cluster unit list` and `node unit list` commands? > > > > What does the `nodeId` parameter mean in the `cluster unit list` command? > > > > > > On Thu, May 25, 2023 at 12:34 PM Vadim Pakhnushev > > wrote: > > > > > > Hi Andrey! > > > > > > I have a small suggestion regarding the design of the CLI commands. > > > Since we already have a cluster/node namespaces in the CLI, I'd suggest > > > moving the deploy/undeploy/list commands to the cluster subcommand, and > > > rather than using --node option to list the units on the particular node, > > > use node namespace for the list command which will be operating on the > > node > > > level. > > > So the whole list of commands would be: > > > cluster unit deploy/undeploy - stay the same > > > cluster unit list [nodeId [--version version]] [--status ...] - without > > the > > > --node option > > > node unit list [nodeId [--version version]] [--status ...] - same > > filters, > > > but will show the node unit statuses rather than cluster statuses. > > > > > > WDYT? > > > > > > Thanks, > > > Vadim > > > > > > On Tue, May 23, 2023 at 8:19 PM Andrey Gura wrote: > > > > > > > Hi, Igniters! > > > > > > > > Please take a look at the proposal for Code Deployment functionality > > > > in Apache Ignite 3 [1]. > > > > > > > > Thanks for any feedback! > > > > > > > > 1. > > > > > > https://cwiki.apache.org/confluence/display/IGNITE/IEP-103%3A+Code+Deployment > > > > > >
Re: [DISCUSSION] IEP-103: Code Deployment in Apache Ignite 3
The `nodeId` parameter is not required for the `cluster unit list` because we will list only cluster statuses. Likewise, the `node unit list` command will list only node statuses so the `nodeId` is redundant because it will be called on the particular node endpoint. On Thu, May 25, 2023 at 6:18 PM Andrey Gura wrote: > Hi, Vadim! > > Why is the `nodeId` parameter not required in the suggested syntax of > `cluster unit list` and `node unit list` commands? > > What does the `nodeId` parameter mean in the `cluster unit list` command? > > > On Thu, May 25, 2023 at 12:34 PM Vadim Pakhnushev > wrote: > > > > Hi Andrey! > > > > I have a small suggestion regarding the design of the CLI commands. > > Since we already have a cluster/node namespaces in the CLI, I'd suggest > > moving the deploy/undeploy/list commands to the cluster subcommand, and > > rather than using --node option to list the units on the particular node, > > use node namespace for the list command which will be operating on the > node > > level. > > So the whole list of commands would be: > > cluster unit deploy/undeploy - stay the same > > cluster unit list [nodeId [--version version]] [--status ...] - without > the > > --node option > > node unit list [nodeId [--version version]] [--status ...] - same > filters, > > but will show the node unit statuses rather than cluster statuses. > > > > WDYT? > > > > Thanks, > > Vadim > > > > On Tue, May 23, 2023 at 8:19 PM Andrey Gura wrote: > > > > > Hi, Igniters! > > > > > > Please take a look at the proposal for Code Deployment functionality > > > in Apache Ignite 3 [1]. > > > > > > Thanks for any feedback! > > > > > > 1. > > > > https://cwiki.apache.org/confluence/display/IGNITE/IEP-103%3A+Code+Deployment > > > >
Re: [DISCUSSION] IEP-103: Code Deployment in Apache Ignite 3
Hi, Vadim! Why is the `nodeId` parameter not required in the suggested syntax of `cluster unit list` and `node unit list` commands? What does the `nodeId` parameter mean in the `cluster unit list` command? On Thu, May 25, 2023 at 12:34 PM Vadim Pakhnushev wrote: > > Hi Andrey! > > I have a small suggestion regarding the design of the CLI commands. > Since we already have a cluster/node namespaces in the CLI, I'd suggest > moving the deploy/undeploy/list commands to the cluster subcommand, and > rather than using --node option to list the units on the particular node, > use node namespace for the list command which will be operating on the node > level. > So the whole list of commands would be: > cluster unit deploy/undeploy - stay the same > cluster unit list [nodeId [--version version]] [--status ...] - without the > --node option > node unit list [nodeId [--version version]] [--status ...] - same filters, > but will show the node unit statuses rather than cluster statuses. > > WDYT? > > Thanks, > Vadim > > On Tue, May 23, 2023 at 8:19 PM Andrey Gura wrote: > > > Hi, Igniters! > > > > Please take a look at the proposal for Code Deployment functionality > > in Apache Ignite 3 [1]. > > > > Thanks for any feedback! > > > > 1. > > https://cwiki.apache.org/confluence/display/IGNITE/IEP-103%3A+Code+Deployment > >
Re: [DISCUSSION] IEP-103: Code Deployment in Apache Ignite 3
Hi Andrey! I have a small suggestion regarding the design of the CLI commands. Since we already have a cluster/node namespaces in the CLI, I'd suggest moving the deploy/undeploy/list commands to the cluster subcommand, and rather than using --node option to list the units on the particular node, use node namespace for the list command which will be operating on the node level. So the whole list of commands would be: cluster unit deploy/undeploy - stay the same cluster unit list [nodeId [--version version]] [--status ...] - without the --node option node unit list [nodeId [--version version]] [--status ...] - same filters, but will show the node unit statuses rather than cluster statuses. WDYT? Thanks, Vadim On Tue, May 23, 2023 at 8:19 PM Andrey Gura wrote: > Hi, Igniters! > > Please take a look at the proposal for Code Deployment functionality > in Apache Ignite 3 [1]. > > Thanks for any feedback! > > 1. > https://cwiki.apache.org/confluence/display/IGNITE/IEP-103%3A+Code+Deployment >
[DISCUSSION] IEP-103: Code Deployment in Apache Ignite 3
Hi, Igniters! Please take a look at the proposal for Code Deployment functionality in Apache Ignite 3 [1]. Thanks for any feedback! 1. https://cwiki.apache.org/confluence/display/IGNITE/IEP-103%3A+Code+Deployment