Sergey Chugunov created IGNITE-16613:
----------------------------------------

             Summary: IgniteCompute facade and ComputeJob interface
                 Key: IGNITE-16613
                 URL: https://issues.apache.org/jira/browse/IGNITE-16613
             Project: Ignite
          Issue Type: Task
          Components: compute
            Reporter: Sergey Chugunov


On first phase we want to define a facade in ignite-api module with support 
only simple remote job execution.

API of the facade:

{code:java}
public interface IgniteCompute {
  // Executes a job represented by the given class on one node from the nodes 
set.
  <R> CompletableFuture<R> execute(Set<ClusterNode> nodes, Class<? Extends 
ComputeJob<R>> cls, Object … args);

  // Executes a job represented by the given class on one node where the given 
key is located.
    <R> CompletableFuture<R> executeColocated(String table, K key, Class<? 
extends ComputeJob<R>> cls, Object … args);
}
{code}

It supports the simplest operations only and leaves aside more sophisticated 
scenarios like broadcast or operations requiring code deployment.

ComputeJob interface looks like this:

{code}
public interface ComputeJob<R> {
    R execute(JobExecutionContext ctx, Object … args);
}
{code}

JobExecutionContext here is needed for passing Ignite instance of the local 
node where the job is started but can be extended with more session parameters.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to