blob: 0a4493a8b4bac3d5faf9abe3ad1024e7cf5b1fc4 [file] [log] [blame]
<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
<head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.8.1/dotnetdoc/api/Apache.Ignite.Core.Compute.ComputeTaskSplitAdapter-3.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Class ComputeTaskSplitAdapter&lt;TArg, TJobRes, TTaskRes&gt;
| Apache Ignite.NET </title>
<meta name="viewport" content="width=device-width">
<meta name="title" content="Class ComputeTaskSplitAdapter&lt;TArg, TJobRes, TTaskRes&gt;
| Apache Ignite.NET ">
<meta name="generator" content="docfx 2.24.0.0">
<link rel="shortcut icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/docfx.vendor.css">
<link rel="stylesheet" href="../styles/docfx.css">
<link rel="stylesheet" href="../styles/main.css">
<meta property="docfx:navrel" content="../toc.html">
<meta property="docfx:tocrel" content="toc.html">
<meta property="docfx:rel" content="../">
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-61232409-1', 'auto');
ga('send', 'pageview');
</script></head>
<body data-spy="scroll" data-target="#affix">
<div id="wrapper">
<header>
<nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../images/logo_ignite_32_32.png" alt="">
</a>
</div>
<div class="collapse navbar-collapse" id="navbar">
<form class="navbar-form navbar-right" role="search" id="search">
<div class="form-group">
<input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
</div>
</form>
</div>
</div>
</nav>
<div class="subnav navbar navbar-default">
<div class="container hide-when-search" id="breadcrumb">
<ul class="breadcrumb">
<li></li>
</ul>
</div>
</div>
</header>
<div class="container body-content">
<div id="search-results">
<div class="search-list"></div>
<div class="sr-items"></div>
<ul id="pagination"></ul>
</div>
</div>
<div role="main" class="container body-content hide-when-search">
<div class="sidenav hide-when-search">
<a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
<div class="sidetoggle collapse" id="sidetoggle">
<div id="sidetoc"></div>
</div>
</div>
<div class="article row grid-right">
<div class="col-md-10">
<article class="content wrap" id="_content" data-uid="Apache.Ignite.Core.Compute.ComputeTaskSplitAdapter`3">
<h1 id="Apache_Ignite_Core_Compute_ComputeTaskSplitAdapter_3" data-uid="Apache.Ignite.Core.Compute.ComputeTaskSplitAdapter`3" class="text-break">Class ComputeTaskSplitAdapter&lt;TArg, TJobRes, TTaskRes&gt;
</h1>
<div class="markdown level0 summary"><p>This class defines simplified adapter for <a class="xref" href="Apache.Ignite.Core.Compute.IComputeTask-3.html">IComputeTask&lt;TArg, TJobRes, TRes&gt;</a>. This adapter can be used
when jobs can be randomly assigned to available Ignite nodes. This adapter is sufficient
in most homogeneous environments where all nodes are equally suitable for executing grid
job, see <a class="xref" href="Apache.Ignite.Core.Compute.ComputeTaskSplitAdapter-3.html#Apache_Ignite_Core_Compute_ComputeTaskSplitAdapter_3_Split_System_Int32__0_">Split(Int32, TArg)</a> method for more details.</p>
</div>
<div class="markdown level0 conceptual"></div>
<div class="inheritance">
<h5>Inheritance</h5>
<div class="level0"><span class="xref">System.Object</span></div>
<div class="level1"><a class="xref" href="Apache.Ignite.Core.Compute.ComputeTaskAdapter-3.html">ComputeTaskAdapter</a>&lt;TArg, TJobRes, TTaskRes&gt;</div>
<div class="level2"><span class="xref">ComputeTaskSplitAdapter&lt;TArg, TJobRes, TTaskRes&gt;</span></div>
</div>
<div classs="implements">
<h5>Implements</h5>
<div><a class="xref" href="Apache.Ignite.Core.Compute.IComputeTask-3.html">IComputeTask</a>&lt;TArg, TJobRes, TTaskRes&gt;</div>
</div>
<div class="inheritedMembers">
<h5>Inherited Members</h5>
<div>
<a class="xref" href="Apache.Ignite.Core.Compute.ComputeTaskAdapter-3.html#Apache_Ignite_Core_Compute_ComputeTaskAdapter_3_OnResult_Apache_Ignite_Core_Compute_IComputeJobResult__1__System_Collections_Generic_IList_Apache_Ignite_Core_Compute_IComputeJobResult__1___">ComputeTaskAdapter&lt;TArg, TJobRes, TTaskRes&gt;.OnResult(IComputeJobResult&lt;TJobRes&gt;, IList&lt;IComputeJobResult&lt;TJobRes&gt;&gt;)</a>
</div>
<div>
<a class="xref" href="Apache.Ignite.Core.Compute.ComputeTaskAdapter-3.html#Apache_Ignite_Core_Compute_ComputeTaskAdapter_3_Map_System_Collections_Generic_IList_Apache_Ignite_Core_Cluster_IClusterNode___0_">ComputeTaskAdapter&lt;TArg, TJobRes, TTaskRes&gt;.Map(IList&lt;IClusterNode&gt;, TArg)</a>
</div>
<div>
<a class="xref" href="Apache.Ignite.Core.Compute.ComputeTaskAdapter-3.html#Apache_Ignite_Core_Compute_ComputeTaskAdapter_3_Reduce_System_Collections_Generic_IList_Apache_Ignite_Core_Compute_IComputeJobResult__1___">ComputeTaskAdapter&lt;TArg, TJobRes, TTaskRes&gt;.Reduce(IList&lt;IComputeJobResult&lt;TJobRes&gt;&gt;)</a>
</div>
<div>
<span class="xref">System.Object.ToString()</span>
</div>
<div>
<span class="xref">System.Object.Equals(System.Object)</span>
</div>
<div>
<span class="xref">System.Object.Equals(System.Object, System.Object)</span>
</div>
<div>
<span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
</div>
<div>
<span class="xref">System.Object.GetHashCode()</span>
</div>
<div>
<span class="xref">System.Object.GetType()</span>
</div>
<div>
<span class="xref">System.Object.MemberwiseClone()</span>
</div>
</div>
<h6><strong>Namespace</strong>: <a class="xref" href="Apache.Ignite.Core.Compute.html">Apache.Ignite.Core.Compute</a></h6>
<h6><strong>Assembly</strong>: Apache.Ignite.Core.dll</h6>
<h5 id="Apache_Ignite_Core_Compute_ComputeTaskSplitAdapter_3_syntax">Syntax</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public abstract class ComputeTaskSplitAdapter&lt;TArg, TJobRes, TTaskRes&gt; : ComputeTaskAdapter&lt;TArg, TJobRes, TTaskRes&gt;, IComputeTask&lt;TArg, TJobRes, TTaskRes&gt;</code></pre>
</div>
<h5 class="typeParameters">Type Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="parametername">TArg</span></td>
<td></td>
</tr>
<tr>
<td><span class="parametername">TJobRes</span></td>
<td></td>
</tr>
<tr>
<td><span class="parametername">TTaskRes</span></td>
<td></td>
</tr>
</tbody>
</table>
<h3 id="methods">Methods
</h3>
<a id="Apache_Ignite_Core_Compute_ComputeTaskSplitAdapter_3_Map_" data-uid="Apache.Ignite.Core.Compute.ComputeTaskSplitAdapter`3.Map*"></a>
<h4 id="Apache_Ignite_Core_Compute_ComputeTaskSplitAdapter_3_Map_System_Collections_Generic_IList_Apache_Ignite_Core_Cluster_IClusterNode___0_" data-uid="Apache.Ignite.Core.Compute.ComputeTaskSplitAdapter`3.Map(System.Collections.Generic.IList{Apache.Ignite.Core.Cluster.IClusterNode},`0)">Map(IList&lt;IClusterNode&gt;, TArg)</h4>
<div class="markdown level1 summary"><p>This method is called to map or split Ignite task into multiple Ignite jobs. This is the
first method that gets called when task execution starts.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public override IDictionary&lt;IComputeJob&lt;TJobRes&gt;, IClusterNode&gt; Map(IList&lt;IClusterNode&gt; subgrid, TArg arg)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Collections.Generic.IList</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cluster.IClusterNode.html">IClusterNode</a>&gt;</td>
<td><span class="parametername">subgrid</span></td>
<td><p>Nodes available for this task execution. Note that order of nodes is
guaranteed to be randomized by container. This ensures that every time you simply iterate
through Ignite nodes, the order of nodes will be random which over time should result into
all nodes being used equally.</p>
</td>
</tr>
<tr>
<td><span class="xref">TArg</span></td>
<td><span class="parametername">arg</span></td>
<td><p>Task execution argument. Can be <code>null</code>. This is the same argument
as the one passed into <code>ICompute.Execute()</code> methods.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Collections.Generic.IDictionary</span>&lt;<a class="xref" href="Apache.Ignite.Core.Compute.IComputeJob-1.html">IComputeJob</a>&lt;TJobRes&gt;, <a class="xref" href="Apache.Ignite.Core.Cluster.IClusterNode.html">IClusterNode</a>&gt;</td>
<td><p>Map of Ignite jobs assigned to subgrid node. If <code>null</code> or empty map is returned,
exception will be thrown.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="overrides">Overrides</h5>
<div><span class="xref">Apache.Ignite.Core.Compute.ComputeTaskAdapter&lt;TArg, TJobRes, TTaskRes&gt;.Map(System.Collections.Generic.IList&lt;Apache.Ignite.Core.Cluster.IClusterNode&gt;, TArg)</span></div>
<h5 class="exceptions">Exceptions</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Condition</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Common.IgniteException.html">IgniteException</a></td>
<td><p>Split returned no jobs.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Compute_ComputeTaskSplitAdapter_3_Split_" data-uid="Apache.Ignite.Core.Compute.ComputeTaskSplitAdapter`3.Split*"></a>
<h4 id="Apache_Ignite_Core_Compute_ComputeTaskSplitAdapter_3_Split_System_Int32__0_" data-uid="Apache.Ignite.Core.Compute.ComputeTaskSplitAdapter`3.Split(System.Int32,`0)">Split(Int32, TArg)</h4>
<div class="markdown level1 summary"><p>This is a simplified version of <a class="xref" href="Apache.Ignite.Core.Compute.IComputeTask-3.html#Apache_Ignite_Core_Compute_IComputeTask_3_Map_System_Collections_Generic_IList_Apache_Ignite_Core_Cluster_IClusterNode___0_">Map(IList&lt;IClusterNode&gt;, TArg)</a> method.
<p>
This method basically takes given argument and splits it into a collection
of <span class="xref">Apache.Ignite.Core.Impl.Compute.IComputeJob</span> using provided grid size as indication of how many node are
available. These jobs will be randomly mapped to available Ignite nodes. Note that
if number of jobs is greater than number of Ignite nodes (i.e, grid size), the grid
nodes will be reused and some jobs will end up on the same Ignite nodes.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected abstract ICollection&lt;IComputeJob&lt;TJobRes&gt;&gt; Split(int gridSize, TArg arg)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Int32</span></td>
<td><span class="parametername">gridSize</span></td>
<td><p>Number of available Ignite nodes. Note that returned number of jobs can be less,
equal or greater than this grid size.</p>
</td>
</tr>
<tr>
<td><span class="xref">TArg</span></td>
<td><span class="parametername">arg</span></td>
<td><p>Task execution argument. Can be <code>null</code>.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Collections.Generic.ICollection</span>&lt;<a class="xref" href="Apache.Ignite.Core.Compute.IComputeJob-1.html">IComputeJob</a>&lt;TJobRes&gt;&gt;</td>
<td></td>
</tr>
</tbody>
</table>
<h3 id="implements">Implements</h3>
<div>
<a class="xref" href="Apache.Ignite.Core.Compute.IComputeTask-3.html">IComputeTask&lt;TArg, TJobRes, TRes&gt;</a>
</div>
</article>
</div>
<div class="hidden-sm col-md-2" role="complementary">
<div class="sideaffix">
<nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
<!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
</nav>
</div>
</div>
</div>
</div>
<footer>
<div class="grad-bottom"></div>
<div class="footer">
<div class="container">
<span class="pull-right">
<a href="#top">Back to top</a>
</span>
© 2015 - 2019 The Apache Software Foundation
</div>
</div>
</footer>
</div>
<script type="text/javascript" src="../styles/docfx.vendor.js"></script>
<script type="text/javascript" src="../styles/docfx.js"></script>
<script type="text/javascript" src="../styles/main.js"></script>
</body>
</html>