blob: 2ee8679a43dff3cd3f2c74a77c42f9c849299d86 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_261) on Mon Dec 20 14:15:51 MSK 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>PriorityQueueCollisionSpi (Ignite 2.11.1)</title>
<meta name="date" content="2021-12-20">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<link rel='shortcut icon' href='https://ignite.apache.org/favicon.ico'/>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="PriorityQueueCollisionSpi (Ignite 2.11.1)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/PriorityQueueCollisionSpi.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpiMBean.html" title="interface in org.apache.ignite.spi.collision.priorityqueue"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html" target="_top">Frames</a></li>
<li><a href="PriorityQueueCollisionSpi.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.ignite.spi.collision.priorityqueue</div>
<h2 title="Class PriorityQueueCollisionSpi" class="title">Class PriorityQueueCollisionSpi</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">org.apache.ignite.spi.IgniteSpiAdapter</a></li>
<li>
<ul class="inheritance">
<li>org.apache.ignite.spi.collision.priorityqueue.PriorityQueueCollisionSpi</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../org/apache/ignite/spi/collision/CollisionSpi.html" title="interface in org.apache.ignite.spi.collision">CollisionSpi</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html" title="interface in org.apache.ignite.spi">IgniteSpi</a></dd>
</dl>
<hr>
<br>
<pre><a href="../../../../../../org/apache/ignite/spi/IgniteSpiMultipleInstancesSupport.html" title="annotation in org.apache.ignite.spi">@IgniteSpiMultipleInstancesSupport</a>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiMultipleInstancesSupport.html#value--">value</a>=true)
<a href="../../../../../../org/apache/ignite/spi/IgniteSpiConsistencyChecked.html" title="annotation in org.apache.ignite.spi">@IgniteSpiConsistencyChecked</a>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiConsistencyChecked.html#optional--">optional</a>=true)
public class <span class="typeNameLabel">PriorityQueueCollisionSpi</span>
extends <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a>
implements <a href="../../../../../../org/apache/ignite/spi/collision/CollisionSpi.html" title="interface in org.apache.ignite.spi.collision">CollisionSpi</a></pre>
<div class="block">This class provides implementation for Collision SPI based on priority queue. Jobs are first ordered
by their priority, if one is specified, and only first <a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#getParallelJobsNumber--"><code>getParallelJobsNumber()</code></a> jobs
is allowed to execute in parallel. Other jobs will be queued up.
<h1 class="header">Configuration</h1>
<h2 class="header">Mandatory</h2>
This SPI has no mandatory configuration parameters.
<h2 class="header">Optional</h2>
This SPI has following optional configuration parameters:
<ul>
<li>
Number of jobs that can be executed in parallel (see <a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#setParallelJobsNumber-int-"><code>setParallelJobsNumber(int)</code></a>).
This number should usually be set to no greater than number of threads in the execution thread pool.
</li>
<li>
Priority attribute session key (see <a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#getPriorityAttributeKey--"><code>getPriorityAttributeKey()</code></a>). Prior to
returning from <a href="../../../../../../org/apache/ignite/compute/ComputeTask.html#map-java.util.List-T-"><code>ComputeTask.map(List, Object)</code></a> method, task implementation should
set a value into the task session keyed by this attribute key. See <a href="../../../../../../org/apache/ignite/compute/ComputeTaskSession.html" title="interface in org.apache.ignite.compute"><code>ComputeTaskSession</code></a>
for more information about task session.
</li>
<li>
Priority attribute job context key (see <a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#getJobPriorityAttributeKey--"><code>getJobPriorityAttributeKey()</code></a>).
It is used for specifying job priority.
See <a href="../../../../../../org/apache/ignite/compute/ComputeJobContext.html" title="interface in org.apache.ignite.compute"><code>ComputeJobContext</code></a> for more information about job context.
</li>
<li>Default priority value (see <a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#getDefaultPriority--"><code>getDefaultPriority()</code></a>). It is used when no priority is set.</li>
<li>
Default priority increase value (see <a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#getStarvationIncrement--"><code>getStarvationIncrement()</code></a>).
It is used for increasing priority when job gets bumped down.
This future is used for preventing starvation waiting jobs execution.
</li>
<li>
Default increasing priority flag value (see <a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#isStarvationPreventionEnabled--"><code>isStarvationPreventionEnabled()</code></a>).
It is used for enabling increasing priority when job gets bumped down.
This future is used for preventing starvation waiting jobs execution.
</li>
</ul>
Below is a Java example of configuration for priority collision SPI:
<pre name="code" class="java">
PriorityQueueCollisionSpi colSpi = new PriorityQueueCollisionSpi();
// Execute all jobs sequentially by setting parallel job number to 1.
colSpi.setParallelJobsNumber(1);
IgniteConfiguration cfg = new IgniteConfiguration();
// Override default collision SPI.
cfg.setCollisionSpi(colSpi);
// Starts grid.
G.start(cfg);
</pre>
Here is Spring XML configuration example:
<pre name="code" class="xml">
&lt;property name="collisionSpi"&gt;
&lt;bean class="org.apache.ignite.spi.collision.priorityqueue.PriorityQueueCollisionSpi"&gt;
&lt;property name="priorityAttributeKey" value="myPriorityAttributeKey"/&gt;
&lt;property name="parallelJobsNumber" value="10"/&gt;
&lt;/bean&gt;
&lt;/property&gt;
</pre>
<p>
<h1 class="header">Coding Example</h1>
Here is an example of a grid tasks that uses priority collision SPI configured in example above.
Note that priority collision resolution is absolutely transparent to the user and is simply a matter of proper
grid configuration. Also, priority may be defined only for task (it can be defined within the task,
not at a job level). All split jobs will be started with priority declared in their owner task.
<p>
This example demonstrates how urgent task may be declared with a higher priority value.
Priority SPI guarantees (see its configuration in example above, where number of parallel
jobs is set to <code>1</code>) that all jobs from <code>MyGridUrgentTask</code> will most likely
be activated first (one by one) and jobs from <code>MyGridUsualTask</code> with lowest priority
will wait. Once higher priority jobs complete, lower priority jobs will be scheduled.
<pre name="code" class="java">
public class MyGridUsualTask extends ComputeTaskSplitAdapter&lt;Object, Object&gt; {
public static final int SPLIT_COUNT = 20;
&#64;TaskSessionResource
private ComputeTaskSession taskSes;
&#64;Override
protected Collection&lt;? extends ComputeJob&gt; split(int gridSize, Object arg) throws IgniteCheckedException {
...
// Set low task priority (note that attribute name is used by the SPI
// and should not be changed).
taskSes.setAttribute("grid.task.priority", 5);
Collection&lt;ComputeJob&gt; jobs = new ArrayList&lt;ComputeJob&gt;(SPLIT_COUNT);
for (int i = 1; i &lt;= SPLIT_COUNT; i++) {
jobs.add(new ComputeJobAdapter&lt;Integer&gt;(i) {
...
});
}
...
}
}
</pre>
and
<pre name="code" class="java">
public class MyGridUrgentTask extends ComputeTaskSplitAdapter&lt;Object, Object&gt; {
public static final int SPLIT_COUNT = 5;
&#64;TaskSessionResource
private ComputeTaskSession taskSes;
&#64;Override
protected Collection&lt;? extends ComputeJob&gt; split(int gridSize, Object arg) throws IgniteCheckedException {
...
// Set high task priority (note that attribute name is used by the SPI
// and should not be changed).
taskSes.setAttribute("grid.task.priority", 10);
Collection&lt;ComputeJob&gt; jobs = new ArrayList&lt;ComputeJob&gt;(SPLIT_COUNT);
for (int i = 1; i &lt;= SPLIT_COUNT; i++) {
jobs.add(new ComputeJobAdapter&lt;Integer&gt;(i) {
...
});
}
...
}
}
</pre>
<p>
<img src="http://ignite.apache.org/images/spring-small.png">
<br>
For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#DFLT_JOB_PRIORITY_ATTRIBUTE_KEY">DFLT_JOB_PRIORITY_ATTRIBUTE_KEY</a></span></code>
<div class="block">Default job priority attribute key (value is <code>grid.job.priority</code>).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#DFLT_PARALLEL_JOBS_NUM">DFLT_PARALLEL_JOBS_NUM</a></span></code>
<div class="block">Default number of parallel jobs allowed (set to number of cores times 2).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#DFLT_PREVENT_STARVATION_ENABLED">DFLT_PREVENT_STARVATION_ENABLED</a></span></code>
<div class="block">Default flag for preventing starvation of lower priority jobs.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#DFLT_PRIORITY">DFLT_PRIORITY</a></span></code>
<div class="block">Default priority that will be assigned if job does not have a
priority attribute set (value is <code>0</code>).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#DFLT_PRIORITY_ATTRIBUTE_KEY">DFLT_PRIORITY_ATTRIBUTE_KEY</a></span></code>
<div class="block">Default priority attribute key (value is <code>grid.task.priority</code>).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#DFLT_STARVATION_INCREMENT">DFLT_STARVATION_INCREMENT</a></span></code>
<div class="block">Default value on which job priority will be increased every time when job gets bumped down.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#DFLT_WAIT_JOBS_NUM">DFLT_WAIT_JOBS_NUM</a></span></code>
<div class="block">Default waiting jobs number.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.ignite.spi.IgniteSpiAdapter">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.ignite.spi.<a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a></h3>
<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#ignite">ignite</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#igniteInstanceName">igniteInstanceName</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#PriorityQueueCollisionSpi--">PriorityQueueCollisionSpi</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#getConsistentAttributeNames--">getConsistentAttributeNames</a></span>()</code>
<div class="block">Returns back a list of attributes that should be consistent
for this SPI.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#getCurrentActiveJobsNumber--">getCurrentActiveJobsNumber</a></span>()</code>
<div class="block">Gets current number of jobs that are active, i.e.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#getCurrentHeldJobsNumber--">getCurrentHeldJobsNumber</a></span>()</code>
<div class="block">Gets number of currently <code>'held'</code> jobs.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#getCurrentRunningJobsNumber--">getCurrentRunningJobsNumber</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#getCurrentWaitJobsNumber--">getCurrentWaitJobsNumber</a></span>()</code>
<div class="block">Gets current number of jobs that wait for the execution.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#getDefaultPriority--">getDefaultPriority</a></span>()</code>
<div class="block">Gets default priority to use if a job does not have priority attribute
set.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#getJobPriorityAttributeKey--">getJobPriorityAttributeKey</a></span>()</code>
<div class="block">Gets key name of job priority attribute.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#getNodeAttributes--">getNodeAttributes</a></span>()</code>
<div class="block">This method is called before SPI starts (before method <a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#spiStart-java.lang.String-"><code>IgniteSpi.spiStart(String)</code></a>
is called).</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#getParallelJobsNumber--">getParallelJobsNumber</a></span>()</code>
<div class="block">Gets number of jobs that can be executed in parallel.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#getPriorityAttributeKey--">getPriorityAttributeKey</a></span>()</code>
<div class="block">Gets key name of task priority attribute.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#getStarvationIncrement--">getStarvationIncrement</a></span>()</code>
<div class="block">Gets value to increment job priority by every time a lower priority job gets
behind a higher priority job.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#getWaitingJobsNumber--">getWaitingJobsNumber</a></span>()</code>
<div class="block">Maximum number of jobs that are allowed to wait in waiting queue.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#isStarvationPreventionEnabled--">isStarvationPreventionEnabled</a></span>()</code>
<div class="block">Gets flag indicating whether job starvation prevention is enabled.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#onCollision-org.apache.ignite.spi.collision.CollisionContext-">onCollision</a></span>(<a href="../../../../../../org/apache/ignite/spi/collision/CollisionContext.html" title="interface in org.apache.ignite.spi.collision">CollisionContext</a>&nbsp;ctx)</code>
<div class="block">This is a callback called:
new grid job arrived
executing job finished its execution
topology changed
periodically (on <a href="../../../../../../org/apache/ignite/events/EventType.html#EVT_NODE_METRICS_UPDATED"><code>EventType.EVT_NODE_METRICS_UPDATED</code></a>)
When new job arrives it is added to the end of the wait list and this
method is called.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html" title="class in org.apache.ignite.spi.collision.priorityqueue">PriorityQueueCollisionSpi</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#setDefaultPriority-int-">setDefaultPriority</a></span>(int&nbsp;priority)</code>
<div class="block">Sets default priority to use if a job does not have priority attribute set.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#setExternalCollisionListener-org.apache.ignite.spi.collision.CollisionExternalListener-">setExternalCollisionListener</a></span>(<a href="../../../../../../org/apache/ignite/spi/collision/CollisionExternalListener.html" title="interface in org.apache.ignite.spi.collision">CollisionExternalListener</a>&nbsp;lsnr)</code>
<div class="block">Listener to be set for notification of external collision events (e.g. job stealing).</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html" title="class in org.apache.ignite.spi.collision.priorityqueue">PriorityQueueCollisionSpi</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#setJobPriorityAttributeKey-java.lang.String-">setJobPriorityAttributeKey</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;jobPriAttrKey)</code>
<div class="block">Sets job priority attribute key.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html" title="class in org.apache.ignite.spi.collision.priorityqueue">PriorityQueueCollisionSpi</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#setName-java.lang.String-">setName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
<div class="block">Sets SPI name.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html" title="class in org.apache.ignite.spi.collision.priorityqueue">PriorityQueueCollisionSpi</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#setParallelJobsNumber-int-">setParallelJobsNumber</a></span>(int&nbsp;parallelJobsNum)</code>
<div class="block">Sets number of jobs that can be executed in parallel.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html" title="class in org.apache.ignite.spi.collision.priorityqueue">PriorityQueueCollisionSpi</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#setPriorityAttributeKey-java.lang.String-">setPriorityAttributeKey</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;taskPriAttrKey)</code>
<div class="block">Sets task priority attribute key.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html" title="class in org.apache.ignite.spi.collision.priorityqueue">PriorityQueueCollisionSpi</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#setStarvationIncrement-int-">setStarvationIncrement</a></span>(int&nbsp;starvationInc)</code>
<div class="block">Sets value to increment job priority by every time a lower priority job gets
behind a higher priority job.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html" title="class in org.apache.ignite.spi.collision.priorityqueue">PriorityQueueCollisionSpi</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#setStarvationPreventionEnabled-boolean-">setStarvationPreventionEnabled</a></span>(boolean&nbsp;preventStarvation)</code>
<div class="block">Sets flag indicating whether job starvation prevention is enabled.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html" title="class in org.apache.ignite.spi.collision.priorityqueue">PriorityQueueCollisionSpi</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#setWaitingJobsNumber-int-">setWaitingJobsNumber</a></span>(int&nbsp;waitJobsNum)</code>
<div class="block">Maximum number of jobs that are allowed to wait in waiting queue.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#spiStart-java.lang.String-">spiStart</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;igniteInstanceName)</code>
<div class="block">This method is called to start SPI.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#spiStop--">spiStop</a></span>()</code>
<div class="block">This method is called to stop SPI.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html#toString--">toString</a></span>()</code></td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.ignite.spi.IgniteSpiAdapter">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.ignite.spi.<a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a></h3>
<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#addTimeoutObject-org.apache.ignite.spi.IgniteSpiTimeoutObject-">addTimeoutObject</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#assertParameter-boolean-java.lang.String-">assertParameter</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#checkConfigurationConsistency0-org.apache.ignite.spi.IgniteSpiContext-org.apache.ignite.cluster.ClusterNode-boolean-">checkConfigurationConsistency0</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#clientFailureDetectionTimeout--">clientFailureDetectionTimeout</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#configInfo-java.lang.String-java.lang.Object-">configInfo</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#createSpiAttributeName-java.lang.String-">createSpiAttributeName</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#failureDetectionTimeout--">failureDetectionTimeout</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#failureDetectionTimeoutEnabled--">failureDetectionTimeoutEnabled</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#failureDetectionTimeoutEnabled-boolean-">failureDetectionTimeoutEnabled</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getExceptionRegistry--">getExceptionRegistry</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getLocalNode--">getLocalNode</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getName--">getName</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getSpiContext--">getSpiContext</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#ignite--">ignite</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#initFailureDetectionTimeout--">initFailureDetectionTimeout</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#injectables--">injectables</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#injectResources-org.apache.ignite.Ignite-">injectResources</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#isNodeStopping--">isNodeStopping</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onBeforeStart--">onBeforeStart</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onClientDisconnected-org.apache.ignite.lang.IgniteFuture-">onClientDisconnected</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onClientReconnected-boolean-">onClientReconnected</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onContextDestroyed--">onContextDestroyed</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onContextDestroyed0--">onContextDestroyed0</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onContextInitialized-org.apache.ignite.spi.IgniteSpiContext-">onContextInitialized</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#onContextInitialized0-org.apache.ignite.spi.IgniteSpiContext-">onContextInitialized0</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#registerMBean-java.lang.String-T-java.lang.Class-">registerMBean</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#removeTimeoutObject-org.apache.ignite.spi.IgniteSpiTimeoutObject-">removeTimeoutObject</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#started--">started</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#startInfo--">startInfo</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#startStopwatch--">startStopwatch</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#stopInfo--">stopInfo</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#unregisterMBean--">unregisterMBean</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.ignite.spi.IgniteSpi">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.ignite.spi.<a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html" title="interface in org.apache.ignite.spi">IgniteSpi</a></h3>
<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#getName--">getName</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#onClientDisconnected-org.apache.ignite.lang.IgniteFuture-">onClientDisconnected</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#onClientReconnected-boolean-">onClientReconnected</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#onContextDestroyed--">onContextDestroyed</a>, <a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#onContextInitialized-org.apache.ignite.spi.IgniteSpiContext-">onContextInitialized</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="DFLT_PARALLEL_JOBS_NUM">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_PARALLEL_JOBS_NUM</h4>
<pre>public static final&nbsp;int DFLT_PARALLEL_JOBS_NUM</pre>
<div class="block">Default number of parallel jobs allowed (set to number of cores times 2).</div>
</li>
</ul>
<a name="DFLT_WAIT_JOBS_NUM">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_WAIT_JOBS_NUM</h4>
<pre>public static final&nbsp;int DFLT_WAIT_JOBS_NUM</pre>
<div class="block">Default waiting jobs number. If number of waiting jobs exceed this number,
jobs will be rejected. Default value is <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true#MAX_VALUE" title="class or interface in java.lang"><code>Integer.MAX_VALUE</code></a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.collision.priorityqueue.PriorityQueueCollisionSpi.DFLT_WAIT_JOBS_NUM">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_PRIORITY_ATTRIBUTE_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_PRIORITY_ATTRIBUTE_KEY</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DFLT_PRIORITY_ATTRIBUTE_KEY</pre>
<div class="block">Default priority attribute key (value is <code>grid.task.priority</code>).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.collision.priorityqueue.PriorityQueueCollisionSpi.DFLT_PRIORITY_ATTRIBUTE_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_JOB_PRIORITY_ATTRIBUTE_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_JOB_PRIORITY_ATTRIBUTE_KEY</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DFLT_JOB_PRIORITY_ATTRIBUTE_KEY</pre>
<div class="block">Default job priority attribute key (value is <code>grid.job.priority</code>).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.collision.priorityqueue.PriorityQueueCollisionSpi.DFLT_JOB_PRIORITY_ATTRIBUTE_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_PRIORITY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_PRIORITY</h4>
<pre>public static final&nbsp;int DFLT_PRIORITY</pre>
<div class="block">Default priority that will be assigned if job does not have a
priority attribute set (value is <code>0</code>).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.collision.priorityqueue.PriorityQueueCollisionSpi.DFLT_PRIORITY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_STARVATION_INCREMENT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DFLT_STARVATION_INCREMENT</h4>
<pre>public static final&nbsp;int DFLT_STARVATION_INCREMENT</pre>
<div class="block">Default value on which job priority will be increased every time when job gets bumped down.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.collision.priorityqueue.PriorityQueueCollisionSpi.DFLT_STARVATION_INCREMENT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DFLT_PREVENT_STARVATION_ENABLED">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DFLT_PREVENT_STARVATION_ENABLED</h4>
<pre>public static final&nbsp;boolean DFLT_PREVENT_STARVATION_ENABLED</pre>
<div class="block">Default flag for preventing starvation of lower priority jobs.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.spi.collision.priorityqueue.PriorityQueueCollisionSpi.DFLT_PREVENT_STARVATION_ENABLED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="PriorityQueueCollisionSpi--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>PriorityQueueCollisionSpi</h4>
<pre>public&nbsp;PriorityQueueCollisionSpi()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getParallelJobsNumber--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParallelJobsNumber</h4>
<pre>public&nbsp;int&nbsp;getParallelJobsNumber()</pre>
<div class="block">Gets number of jobs that can be executed in parallel.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Number of jobs that can be executed in parallel.</dd>
</dl>
</li>
</ul>
<a name="setParallelJobsNumber-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setParallelJobsNumber</h4>
<pre><a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html" title="annotation in org.apache.ignite.spi">@IgniteSpiConfiguration</a>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html#optional--">optional</a>=true)
public&nbsp;<a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html" title="class in org.apache.ignite.spi.collision.priorityqueue">PriorityQueueCollisionSpi</a>&nbsp;setParallelJobsNumber(int&nbsp;parallelJobsNum)</pre>
<div class="block">Sets number of jobs that can be executed in parallel.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parallelJobsNum</code> - Parallel jobs number.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="getWaitingJobsNumber--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWaitingJobsNumber</h4>
<pre>public&nbsp;int&nbsp;getWaitingJobsNumber()</pre>
<div class="block">Maximum number of jobs that are allowed to wait in waiting queue. If number
of waiting jobs ever exceeds this number, excessive jobs will be rejected.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Maximum allowed number of waiting jobs.</dd>
</dl>
</li>
</ul>
<a name="setWaitingJobsNumber-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setWaitingJobsNumber</h4>
<pre><a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html" title="annotation in org.apache.ignite.spi">@IgniteSpiConfiguration</a>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html#optional--">optional</a>=true)
public&nbsp;<a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html" title="class in org.apache.ignite.spi.collision.priorityqueue">PriorityQueueCollisionSpi</a>&nbsp;setWaitingJobsNumber(int&nbsp;waitJobsNum)</pre>
<div class="block">Maximum number of jobs that are allowed to wait in waiting queue. If number
of waiting jobs ever exceeds this number, excessive jobs will be rejected.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>waitJobsNum</code> - Maximium jobs number.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="getCurrentWaitJobsNumber--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentWaitJobsNumber</h4>
<pre>public&nbsp;int&nbsp;getCurrentWaitJobsNumber()</pre>
<div class="block">Gets current number of jobs that wait for the execution.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Number of jobs that wait for execution.</dd>
</dl>
</li>
</ul>
<a name="getCurrentActiveJobsNumber--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentActiveJobsNumber</h4>
<pre>public&nbsp;int&nbsp;getCurrentActiveJobsNumber()</pre>
<div class="block">Gets current number of jobs that are active, i.e. <code>'running + held'</code> jobs.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Number of active jobs.</dd>
</dl>
</li>
</ul>
<a name="getCurrentRunningJobsNumber--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentRunningJobsNumber</h4>
<pre>public&nbsp;int&nbsp;getCurrentRunningJobsNumber()</pre>
</li>
</ul>
<a name="getCurrentHeldJobsNumber--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentHeldJobsNumber</h4>
<pre>public&nbsp;int&nbsp;getCurrentHeldJobsNumber()</pre>
<div class="block">Gets number of currently <code>'held'</code> jobs.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Number of currently <code>'held'</code> jobs.</dd>
</dl>
</li>
</ul>
<a name="setPriorityAttributeKey-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPriorityAttributeKey</h4>
<pre><a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html" title="annotation in org.apache.ignite.spi">@IgniteSpiConfiguration</a>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html#optional--">optional</a>=true)
public&nbsp;<a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html" title="class in org.apache.ignite.spi.collision.priorityqueue">PriorityQueueCollisionSpi</a>&nbsp;setPriorityAttributeKey(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;taskPriAttrKey)</pre>
<div class="block">Sets task priority attribute key. This key will be used to look up task
priorities from task context (see <a href="../../../../../../org/apache/ignite/compute/ComputeTaskSession.html#getAttribute-K-"><code>ComputeTaskSession.getAttribute(Object)</code></a>).
<p>
If not provided, default value is <code>{@link #DFLT_PRIORITY_ATTRIBUTE_KEY}</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>taskPriAttrKey</code> - Priority session attribute key.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="setJobPriorityAttributeKey-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setJobPriorityAttributeKey</h4>
<pre><a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html" title="annotation in org.apache.ignite.spi">@IgniteSpiConfiguration</a>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html#optional--">optional</a>=true)
public&nbsp;<a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html" title="class in org.apache.ignite.spi.collision.priorityqueue">PriorityQueueCollisionSpi</a>&nbsp;setJobPriorityAttributeKey(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;jobPriAttrKey)</pre>
<div class="block">Sets job priority attribute key. This key will be used to look up job
priorities from job context (see <a href="../../../../../../org/apache/ignite/compute/ComputeJobContext.html#getAttribute-K-"><code>ComputeJobContext.getAttribute(Object)</code></a>).
<p>
If not provided, default value is <code>{@link #DFLT_JOB_PRIORITY_ATTRIBUTE_KEY}</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>jobPriAttrKey</code> - Job priority attribute key.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="getPriorityAttributeKey--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPriorityAttributeKey</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPriorityAttributeKey()</pre>
<div class="block">Gets key name of task priority attribute.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Key name of task priority attribute.</dd>
</dl>
</li>
</ul>
<a name="getJobPriorityAttributeKey--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJobPriorityAttributeKey</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getJobPriorityAttributeKey()</pre>
<div class="block">Gets key name of job priority attribute.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Key name of job priority attribute.</dd>
</dl>
</li>
</ul>
<a name="getDefaultPriority--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultPriority</h4>
<pre>public&nbsp;int&nbsp;getDefaultPriority()</pre>
<div class="block">Gets default priority to use if a job does not have priority attribute
set.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Default priority to use if a task does not have priority
attribute set.</dd>
</dl>
</li>
</ul>
<a name="setDefaultPriority-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDefaultPriority</h4>
<pre><a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html" title="annotation in org.apache.ignite.spi">@IgniteSpiConfiguration</a>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html#optional--">optional</a>=true)
public&nbsp;<a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html" title="class in org.apache.ignite.spi.collision.priorityqueue">PriorityQueueCollisionSpi</a>&nbsp;setDefaultPriority(int&nbsp;priority)</pre>
<div class="block">Sets default priority to use if a job does not have priority attribute set.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>priority</code> - default priority.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="getStarvationIncrement--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStarvationIncrement</h4>
<pre>public&nbsp;int&nbsp;getStarvationIncrement()</pre>
<div class="block">Gets value to increment job priority by every time a lower priority job gets
behind a higher priority job.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Value to increment job priority by every time a lower priority job gets
behind a higher priority job.</dd>
</dl>
</li>
</ul>
<a name="setStarvationIncrement-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStarvationIncrement</h4>
<pre><a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html" title="annotation in org.apache.ignite.spi">@IgniteSpiConfiguration</a>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html#optional--">optional</a>=true)
public&nbsp;<a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html" title="class in org.apache.ignite.spi.collision.priorityqueue">PriorityQueueCollisionSpi</a>&nbsp;setStarvationIncrement(int&nbsp;starvationInc)</pre>
<div class="block">Sets value to increment job priority by every time a lower priority job gets
behind a higher priority job.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>starvationInc</code> - Increment value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="isStarvationPreventionEnabled--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isStarvationPreventionEnabled</h4>
<pre>public&nbsp;boolean&nbsp;isStarvationPreventionEnabled()</pre>
<div class="block">Gets flag indicating whether job starvation prevention is enabled.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Flag indicating whether job starvation prevention is enabled.</dd>
</dl>
</li>
</ul>
<a name="setStarvationPreventionEnabled-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStarvationPreventionEnabled</h4>
<pre><a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html" title="annotation in org.apache.ignite.spi">@IgniteSpiConfiguration</a>(<a href="../../../../../../org/apache/ignite/spi/IgniteSpiConfiguration.html#optional--">optional</a>=true)
public&nbsp;<a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html" title="class in org.apache.ignite.spi.collision.priorityqueue">PriorityQueueCollisionSpi</a>&nbsp;setStarvationPreventionEnabled(boolean&nbsp;preventStarvation)</pre>
<div class="block">Sets flag indicating whether job starvation prevention is enabled.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>preventStarvation</code> - Flag indicating whether job starvation prevention is enabled.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="getNodeAttributes--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNodeAttributes</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a><span class='angle_bracket'>&gt;</span>&nbsp;getNodeAttributes()
throws <a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></pre>
<div class="block">This method is called before SPI starts (before method <a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#spiStart-java.lang.String-"><code>IgniteSpi.spiStart(String)</code></a>
is called). It allows SPI implementation to add attributes to a local
node. Kernal collects these attributes from all SPI implementations
loaded up and then passes it to discovery SPI so that they can be
exchanged with other nodes.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#getNodeAttributes--">getNodeAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html" title="interface in org.apache.ignite.spi">IgniteSpi</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getNodeAttributes--">getNodeAttributes</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map of local node attributes this SPI wants to add.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></code> - Throws in case of any error.</dd>
</dl>
</li>
</ul>
<a name="spiStart-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>spiStart</h4>
<pre>public&nbsp;void&nbsp;spiStart(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;igniteInstanceName)
throws <a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></pre>
<div class="block">This method is called to start SPI. After this method returns
successfully kernel assumes that SPI is fully operational.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#spiStart-java.lang.String-">spiStart</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html" title="interface in org.apache.ignite.spi">IgniteSpi</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>igniteInstanceName</code> - Name of Ignite instance this SPI is being started for
(<code>null</code> for default Ignite instance).</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></code> - Throws in case of any error during SPI start.</dd>
</dl>
</li>
</ul>
<a name="spiStop--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>spiStop</h4>
<pre>public&nbsp;void&nbsp;spiStop()
throws <a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></pre>
<div class="block">This method is called to stop SPI. After this method returns kernel
assumes that this SPI is finished and all resources acquired by it
are released.
<p>
<b>
Note that this method can be called at any point including during
recovery of failed start. It should make no assumptions on what state SPI
will be in when this method is called.
</b></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html#spiStop--">spiStop</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpi.html" title="interface in org.apache.ignite.spi">IgniteSpi</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiException.html" title="class in org.apache.ignite.spi">IgniteSpiException</a></code> - Thrown in case of any error during SPI stop.</dd>
</dl>
</li>
</ul>
<a name="setExternalCollisionListener-org.apache.ignite.spi.collision.CollisionExternalListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setExternalCollisionListener</h4>
<pre>public&nbsp;void&nbsp;setExternalCollisionListener(<a href="../../../../../../org/apache/ignite/spi/collision/CollisionExternalListener.html" title="interface in org.apache.ignite.spi.collision">CollisionExternalListener</a>&nbsp;lsnr)</pre>
<div class="block">Listener to be set for notification of external collision events (e.g. job stealing).
Once grid receives such notification, it will immediately invoke collision SPI.
<p>
Ignite uses this listener to enable job stealing from overloaded to underloaded nodes.
However, you can also utilize it, for instance, to provide time based collision
resolution. To achieve this, you most likely would mark some job by setting a certain
attribute in job context (see <a href="../../../../../../org/apache/ignite/compute/ComputeJobContext.html" title="interface in org.apache.ignite.compute"><code>ComputeJobContext</code></a>) for a job that requires
time-based scheduling and set some timer in your SPI implementation that would wake up
after a certain period of time. Once this period is reached, you would notify this
listener that a collision resolution should take place. Then inside of your collision
resolution logic, you would find the marked waiting job and activate it.
<p>
Note that most collision SPI's might not have external collisions. In that case,
they should simply ignore this method and do nothing when listener is set.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/collision/CollisionSpi.html#setExternalCollisionListener-org.apache.ignite.spi.collision.CollisionExternalListener-">setExternalCollisionListener</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/collision/CollisionSpi.html" title="interface in org.apache.ignite.spi.collision">CollisionSpi</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lsnr</code> - Listener for external collision events.</dd>
</dl>
</li>
</ul>
<a name="onCollision-org.apache.ignite.spi.collision.CollisionContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onCollision</h4>
<pre>public&nbsp;void&nbsp;onCollision(<a href="../../../../../../org/apache/ignite/spi/collision/CollisionContext.html" title="interface in org.apache.ignite.spi.collision">CollisionContext</a>&nbsp;ctx)</pre>
<div class="block">This is a callback called:
<ul>
<li>new grid job arrived</li>
<li>executing job finished its execution</li>
<li>topology changed</li>
<li>periodically (on <a href="../../../../../../org/apache/ignite/events/EventType.html#EVT_NODE_METRICS_UPDATED"><code>EventType.EVT_NODE_METRICS_UPDATED</code></a>)</li>
</ul>
When new job arrives it is added to the end of the wait list and this
method is called. When job finished its execution, it is removed from the active list and
this method is called (i.e., when grid job is finished it will not appear in any list
in collision resolution).
<p>
Implementation of this method should act on all lists, each of which contains collision
job contexts that define a set of operations available during collision resolution. Refer
to <a href="../../../../../../org/apache/ignite/spi/collision/CollisionContext.html" title="interface in org.apache.ignite.spi.collision"><code>CollisionContext</code></a> and <a href="../../../../../../org/apache/ignite/spi/collision/CollisionJobContext.html" title="interface in org.apache.ignite.spi.collision"><code>CollisionJobContext</code></a> documentation for
more information.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/collision/CollisionSpi.html#onCollision-org.apache.ignite.spi.collision.CollisionContext-">onCollision</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/collision/CollisionSpi.html" title="interface in org.apache.ignite.spi.collision">CollisionSpi</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ctx</code> - Collision context which contains all collision lists.</dd>
</dl>
</li>
</ul>
<a name="getConsistentAttributeNames--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConsistentAttributeNames</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a><span class='angle_bracket'>&gt;</span>&nbsp;getConsistentAttributeNames()</pre>
<div class="block">Returns back a list of attributes that should be consistent
for this SPI. Consistency means that remote node has to
have the same attribute with the same value.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#getConsistentAttributeNames--">getConsistentAttributeNames</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List or attribute names.</dd>
</dl>
</li>
</ul>
<a name="setName-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setName</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html" title="class in org.apache.ignite.spi.collision.priorityqueue">PriorityQueueCollisionSpi</a>&nbsp;setName(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
<div class="block">Sets SPI name.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html#setName-java.lang.String-">setName</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/ignite/spi/IgniteSpiAdapter.html" title="class in org.apache.ignite.spi">IgniteSpiAdapter</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - SPI name.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/PriorityQueueCollisionSpi.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpiMBean.html" title="interface in org.apache.ignite.spi.collision.priorityqueue"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/ignite/spi/collision/priorityqueue/PriorityQueueCollisionSpi.html" target="_top">Frames</a></li>
<li><a href="PriorityQueueCollisionSpi.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><table width="100%" border="0" cellspacing=0 cellpadding=0 style="padding: 5px"> <tr> <td> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <a target=_blank href="https://ignite.apache.org"><nobr>2021 Copyright &#169; Apache Software Foundation</nobr></a> </td> </tr> </tbody> </table> </td> <td width="100%" align="right" valign="center"> <a href="https://twitter.com/ApacheIgnite" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @ApacheIgnite</a> </td> </tr> <tr> <td colspan="2" valign="top" align="left"> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <b>Ignite Database and Caching Platform</b> </td> <td>:&nbsp;&nbsp; ver. <strong>2.11.1</strong> </td> </tr> <tr style="padding: 0; margin: 0"> <td> <b>Release Date</b> </td> <td>:&nbsp;&nbsp; December 20 2021 </td> </tr> </tbody> </table> </td> </tr> </table></small></p>
</body>
</html>