| --- |
| 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's</a> but here let’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'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> |