blob: bd33470c9a42c37f9b7857621a229bc8acafc51b [file] [log] [blame]
---
layout: post
status: PUBLISHED
published: true
title: 'Apache Ignite 2.10: Thin Client Expansion'
id: ed0f9d9d-ad7e-419f-a068-7ac5723f0ceb
date: '2021-03-18 10:20:52 -0400'
categories: ignite
tags: []
permalink: ignite/entry/apache-ignite-2-10-thin
---
<p>As of March 15, 2021, <a href="https://ignite.apache.org/">Apache Ignite</a> 2.10 has been released. You can directly<br />
check the full list of resolved <a href="https://s.apache.org/i3ny6">Important JIRA&#39;s</a> but here let&rsquo;s briefly overview some valuable improvements.</p>
<h3 id="thin-clients">Thin Clients</h3>
<p>Thin clients now support several important features which, previously were available only on the thick clients.<br />
Thin clients are always backward and forward compatible with the server nodes of the cluster, so the cluster upgrade<br />
process will be more convenient if the lack of these features prevented you from doing that.</p>
<p>See the list of what is changed for thin clients below:</p>
<ul>
<li>Transactions</li>
<li>Service invocations</li>
<li>Continuous Queries</li>
<li>SQL API</li>
<li>Cluster API</li>
<li>Cache Async API</li>
<li>Kubernetes Discovery (<em>ThinClientKubernetesAddressFinder</em>)</li>
</ul>
<p>You may check the <a href="https://cwiki.apache.org/confluence/display/IGNITE/Thin+clients+features">List of Thin Client Features</a><br />
that supported by platforms you are interested in or see the <a href="https://ptupitsyn.github.io/Whats-New-In-Ignite-Net-2.10/">What&#39;s new in Apache Ignite.NET 2.10</a>.</p>
<h3 id="cluster-monitoring">Cluster Monitoring</h3>
<p>Apache Ignite self-monitoring and cluster health check subsystems are also extended by additional SQL-views<br />
and command line scripts.</p>
<h4 id="new-_control-script_-commands">New <em>control-script</em> Commands</h4>
<p>Query any of the available system views.</p>
<pre><code class="lang-shell">control.sh --system-view views
Command [SYSTEM-VIEW] started
<span class="hljs-code">--------------------------------------------------------------------------------
name schema description
SQL_QUERIES_HISTORY SYS SQL queries history.
INDEXES SYS SQL indexes
BASELINE_NODES SYS Baseline topology nodes
STRIPED_THREADPOOL_QUEUE SYS Striped thread pool task queue
SCAN_QUERIES SYS Scan queries
PARTITION_STATES SYS Distribution of cache group partitions across cluster nodes
Command [SYSTEM-VIEW] finished with code: 0
--------------------------------------------------------------------------------</span>
</code></pre>
<p>Query any of the available system metrics.</p>
<pre><code class="lang-shell"><span class="hljs-meta">[source, text]</span>
control.sh --metric sysCurrentThreadCpuTime
Command [METRIC] started
<span class="hljs-code">--------------------------------------------------------------------------------
metric value
sys.CurrentThreadCpuTime 17270000
Command [METRIC] finished with code: 0
--------------------------------------------------------------------------------</span>
</code></pre>
<p><a href="https://ignite.apache.org/docs/latest/tools/control-script">Read More</a></p>
<h4 id="managing-ignite-system-properties">Managing Ignite System Properties</h4>
<p>In addition to basic cluster configuration settings, you can perform some low-level cluster configuration and tuning<br />
via<br />
Ignite system properties. Run the command below to see the list of all available system properties for<br />
configuration:</p>
<pre><code class="lang-shell">$./ ignite.sh -systemProps
<span class="hljs-comment">--------------------------------------------------------------------------------</span>
IGNITE_AFFINITY_HISTORY_SIZE - [<span class="hljs-built_in">Integer</span>] Maximum size <span
class="hljs-keyword">for</span> affinity assignment history. <span class="hljs-keyword">Default</span> <span
class="hljs-keyword">is</span> <span class="hljs-number">25</span>.
IGNITE_ALLOW_ATOMIC_OPS_IN_TX - [<span class="hljs-built_in">Boolean</span>] Allows atomic operations inside transactions. <span
class="hljs-keyword">Default</span> <span class="hljs-keyword">is</span> <span
class="hljs-literal">true</span>.
IGNITE_ALLOW_START_CACHES_IN_PARALLEL - [<span class="hljs-built_in">Boolean</span>] Allows <span class="hljs-keyword">to</span> start multiple caches <span
class="hljs-keyword">in</span> parallel. <span class="hljs-keyword">Default</span> <span
class="hljs-keyword">is</span> <span class="hljs-literal">true</span>.
...
<span class="hljs-comment">--------------------------------------------------------------------------------</span>
</code></pre>
<p><a href="https://ignite.apache.org/docs/latest/setup#setting-ignite-system-properties">Read more</a></p>
<h3 id="cluster-profiling">Cluster Profiling</h3>
<p>From now on, Apache Ignite is delivered with the cluster profiling tool. This tool collects and processes all cluster<br />
internal information about Queries, Compute Tasks, Cache operations, Checkpoint and WAL statistics, and so on for<br />
problem detection and cluster self-tuning purposes. Each cluster node collects performance statistics into a special<br />
binary file that is placed under the <code>[IGINTE_WORK_DIR]/perf_stat/</code> directory with the template filename<br />
as<br />
<code>node-[nodeId]-[index].prf</code>.<br />
All these files are consumed by offline-tool that builds the report in a human-readable format.</p>
<p><a href="https://ignite.apache.org/docs/latest/monitoring-metrics/performance-statistics">Read More</a></p>
<p><img src="https://blogs.apache.org/ignite/mediaresource/d445a88f-98d1-4a6e-b4d8-037e819ca91f" alt="transactions statistics" style="display: block; margin: auto; width: 50%;"/></p>
<h3 id="transparent-data-encryption-cache-key-rotation">Transparent Data Encryption - Cache Key Rotation</h3>
<p>Payment card industry data security standard (PCI DSS) requires that key-management procedures include a predefined<br />
crypto period for each key in use and define a process for key changes at the end of the defined crypto period.<br />
An expired key should not be used to encrypt new data, but it can be used for archived data, such keys should be<br />
strongly protected (section 3.5 - 3.6 of PCI DSS Requirements and Security Assessment Procedures).</p>
<p>Apache Ignite now supports full PCI DSS requirements:</p>
<ul>
<li><em>Transparent Data Encryption</em> available since the 2.7 release.</li>
<li><em>Master Key Rotation</em> procedure available since the 2.9 release.</li>
<li><em>Cache Key Rotation</em> procedure available since the 2.10 release.</li>
</ul>
<p>You may use the CLI tools that provide the ability to change the re-encryption rate as well as suspend and<br />
resume background re-encryption at runtime.</p>
<p><a href="https://ignite.apache.org/docs/latest/security/cache-encryption-key-rotation">Read More</a></p>