You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dm...@apache.org on 2020/02/11 00:45:25 UTC

svn commit: r1873876 - in /ignite/site/branches/ignite-redisign: arch/memorycentric.html includes/header.html use-cases/hadoop-acceleration.html use-cases/in-memory-cache.html use-cases/in-memory-database.html use-cases/spark-acceleration.html

Author: dmagda
Date: Tue Feb 11 00:45:25 2020
New Revision: 1873876

URL: http://svn.apache.org/viewvc?rev=1873876&view=rev
Log:
update memory-centric storage page

Modified:
    ignite/site/branches/ignite-redisign/arch/memorycentric.html
    ignite/site/branches/ignite-redisign/includes/header.html
    ignite/site/branches/ignite-redisign/use-cases/hadoop-acceleration.html
    ignite/site/branches/ignite-redisign/use-cases/in-memory-cache.html
    ignite/site/branches/ignite-redisign/use-cases/in-memory-database.html
    ignite/site/branches/ignite-redisign/use-cases/spark-acceleration.html

Modified: ignite/site/branches/ignite-redisign/arch/memorycentric.html
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/arch/memorycentric.html?rev=1873876&r1=1873875&r2=1873876&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/arch/memorycentric.html (original)
+++ ignite/site/branches/ignite-redisign/arch/memorycentric.html Tue Feb 11 00:45:25 2020
@@ -33,13 +33,19 @@ under the License.
 <!DOCTYPE html>
 <html lang="en">
 <head>
-    <link rel="canonical" href="https://ignite.apache.org/arch/memorycentric.html" />
+    <link rel="canonical" href="https://ignite.apache.org/arch/memorycentric.html"/>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
-    <meta http-equiv="Pragma" content="no-cache" />
-    <meta http-equiv="Expires" content="0" />
-    <title>Memory Centric - Apache Ignite</title>
+    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/>
+    <meta http-equiv="Pragma" content="no-cache"/>
+    <meta http-equiv="Expires" content="0"/>
+
+    <title>Memory-Centric Storage - Apache Ignite</title>
+
+    <meta name="description"
+          content="Apache Ignite memory-centric storage uses both memory and disk as active storage tiers. Speed of
+          memory with the consistency of disk-based databases and no need for memory warm-ups on restarts."/>
+
     <!--#include virtual="/includes/styles.html" -->
 
     <!--#include virtual="/includes/sh.html" -->
@@ -54,13 +60,11 @@ under the License.
             <div class="col-sm-12 col-md-12 col-xs-12" style="padding:0 0 20px 0;">
                 <div class="col-sm-6 col-md-6 col-xs-12" style="padding-left:0; padding-right:0">
                     <p>
-                        Apache Ignite is based on distributed <i>memory-centric architecture</i> that combines the
-                        performance and scale of in-memory computing together with the disk durability and strong
-                        consistency in one system.
-                    </p>
-                    <p>
-                        When native persistence is turned on, Ignite functions as a <nobr><i>memory-centric system-of-record</i></nobr>,
-                        where most of the processing happens in memory on cached data, but the superset of data and indexes gets persisted to disk.
+                        Apache Ignite is designed to work with both memory and disk as active storage tiers.
+                        Ignite storage is classified as a memory-centric one since most of the architectural decisions
+                        favor specificities of the memory tier that is always at use and cannot be disabled.
+                        The disk tier is optional with the support of two options -- you can persist data in an
+                        external database or keep it in the Ignite native persistence.
                     </p>
                 </div>
                 <div class="col-sm-6 col-md-6 col-xs-12" style="padding-right:0">
@@ -68,28 +72,27 @@ under the License.
                 </div>
             </div>
             <p>
-                When persistence is turned off, Ignite functions as a memory-only store, in which case it can be treated as a Distributed Cache,
-                In-Memory Database (IMDB) or In-Memory Data Grid (IMDG).
-            </p>
-
-            <div class="page-heading" id="db-and-caching-in-one">
-                Database and Caching in One
-                <a href="/arch/memorycentric.html#db-and-caching-in-one"><i class="fa fa-anchor"></i></a>
+                Ignite takes full control of its memory tier by allocating and managing off-heap regions. Each Ignite
+                server node allocates memory regions during bootstrap, splits the regions into pages, and keeps data
+                records with indexes there. Java heap is used to keep temporary objects such as queries results sets,
+                metrics samples, objects generated by your application code. All these objects are garbage collected
+                eventually.
+            </p>
+            <p>
+                If you select the native persistence as the disk tier, then most of the processing will still
+                take place in memory on cached data, but, with a full copy stored on disk. If any record is
+                missing in memory, Ignite will read it from disk, allowing you to persist much larger data sets
+                than you can cache in memory. That also eliminates the need for time-consuming memory warm-ups
+                on restarts. As soon as your cluster reconnects after a restart, Ignite will serve most of the
+                data from disk warming the memory tier up in the background.
+            </p>
+
+            <div class="page-heading" id="storage-usage-modes">
+                Memory-Centric Storage Usage Modes
+                <a href="/arch/memorycentric.html#storage-usage-modes"><i class="fa fa-anchor"></i></a>
             </div>
             <p>
-                One of the main advantages of Ignite is that it comes with a distributed in-memory cache and a
-                distributed on-disk storage in one platform. In other words, Ignite users get both, a
-                distributed cache and a distributed database together.
-            </p>
-            <p>
-                In partitioned (not replicated) mode, the data is partitioned across multiple servers, with each server responsible
-                for a subset of the data. Collectively, the full data set is stored across all servers. Each server
-                has its subset persisted on disk. Depending on how much memory is available,
-                each server also has either the whole subset or a portion of it cached in memory. Such combination
-                of memory and disk creates a distributed memory-centric storage.
-            </p>
-            <p>
-                The following <i>memory and disk usage modes</i> are supported:
+                Below you can see primary modes for memory-centric storage usage and configuration:
             </p>
             <table class="formatted" name="Deployment Options Features">
                 <thead>
@@ -103,268 +106,120 @@ under the License.
                     <td class="left">In-Memory</td>
                     <td>
                         <p>
-                            The whole data set is stored in memory. In order to survive
-                            node failures, it is recommended to configure a number of redundant backup
-                            copies (aka. replication factor) across the cluster.
-                        </p>
-
-                        <p>
-                            <strong>Use cases</strong>: in-memory caches, in-memory data grids, in-memory computations,
-                            web-session caching, real-time processing of continuous data streams.
-                        </p>
-                    </td>
-                </tr>
-                <tr>
-                    <td class="left">In-Memory + 3rd party database</td>
-                    <td>
-                        <p>
-                            Ignite can be used as a caching layer (aka. data grid) over any existing 3rd party
-                            database. This mode is used to accelerate and scale the underlying database.
-                            Automatic integration is provided with most known databases, like Oracle, MySQL,
-                            PostgreSQL, Apache Cassandra, etc.
+                            The whole data set is available in memory only. In order to survive node failures, it is
+                            recommended to keep at least one backup copy of the data across the cluster.
                         </p>
 
                         <p>
-                            <strong>Use cases</strong>: Ignite as <a href="/features/datagrid.html">In-Memory Data Grid</a>
-                            - adds acceleration and scale to existing database deployments (RDBMS, NoSQL, etc).
+                            <strong>Use cases</strong>: general in-memory caching, high-performance
+                            computing, web-session caching, real-time processing of continuous data streams.
                         </p>
                     </td>
                 </tr>
                 <tr>
-                    <td class="left">In-Memory + Full Copy on Disk</td>
+                    <td class="left">In-Memory + External Database</td>
                     <td>
                         <p>
-                            The whole data set is stored in memory and on disk. The disk is used as a memory-offload for data recovery
-                            purposes, in case of full cluster crashes and restarts.
+                            Ignite is deployed as a distributed caching layer on top of an existing external database.
+                            This mode is for the acceleration of disk-based databases and your services with APIs that
+                            interact with them.
                         </p>
 
                         <p>
-                            <strong>Use cases</strong>: Ignite as an
-                            <a href="/use-cases/database/in-memory-database.html"><nobr>In-Memory Database</nobr></a> -
-                            provides SQL, key-value and collocated processing APIs over in-memory data.
+                            <strong>Use cases</strong>: acceleration of services and APIs with write-through/behind
+                            capability, to an external database (aka. in-memory data grid).
                         </p>
                     </td>
                 </tr>
                 <tr>
-                    <td class="left">100% on Disk + In-Memory Cache</td>
+                    <td class="left">In-Memory Cache + Native Persistence</td>
                     <td>
                         <p>
-                            100% of data is persisted to disk and the same or smaller amount is cached in memory.
-                            The more data is cached, the faster is the performance. The disk serves as the primary storage that survives
-                            any type of cluster failures and restarts.
+                            100% of data is persisted to disk, and the same or smaller amount is cached in memory.
+                            The more data is cached, the faster is the performance. The disk serves as the primary
+                            storage that survives any cluster failures and restarts. No need for memory warm-ups on
+                            restarts as long as Ignite can serve data from disk.
                         </p>
 
                         <p>
-                            <strong>Use cases</strong>: Ignite as a
-                            <a href="/use-cases/database/distributed-database.html">Memory-Centric Distributed Database</a>
-                            - provides distributed database with SQL, key-value and collocated processing APIs.
+                            <strong>Use cases</strong>: Ignite as an in-memory database or digital integration hub
+                            with the active persistence layer.
                         </p>
                     </td>
                 </tr>
                 </tbody>
             </table>
 
-            <h2 style="padding-top: 10px;" id="collocated-processing">
-                Collocated vs Client-Server Processing
-                <a href="/arch/memorycentric.html#collocated-processing"><i class="fa fa-anchor"></i></a>
-            </h2>
-            <p>
-                The disk-centric systems, like RDBMS or NoSQL, generally utilize the classic client-server approach, where
-                the data is brought from the server to the client side where it gets processed and then is usually discarded.
-                This approach does not scale well as moving the data over the network is the most expensive operation in a distributed system.
-            </p>
-            <p>
-                A much more scalable approach is <code>collocated processing</code> that reverses the flow by bringing the computations to the
-                servers where the data actually resides. This approach allows you to execute advanced logic or distributed SQL with JOINs
-                exactly where the data is stored avoiding expensive serialization and network trips.
-            </p>
-
             <h2 style="padding-top: 10px;" id="partitioning">
                 Partitioning & Replication
                 <a href="/arch/memorycentric.html#partitioning"><i class="fa fa-anchor"></i></a>
             </h2>
             <p>
-                Depending on the configuration, Ignite can either partition or replicate data across its memory-centric
-                storage. Unlike <code>REPLICATED</code> mode, where data is fully replicated across all nodes
-                in the cluster, in <code>PARTITIONED</code> mode Ignite will equally split the data across
-                multiple cluster nodes, allowing for storing TBs of data both in memory and on disk.
+                Depending on the configuration, Ignite can both partition or replicate data across its memory-centric
+                storage. With the replicated mode, each cluster node keeps a full copy of the data that is advantageous
+                for frequently accessed dictionaries. As for the partitioned mode, Ignite spreads the data across all
+                the cluster nodes evenly, allowing to store much more than a single machine can fit in.
             </p>
 
             <h2 style="padding-top: 10px;" id="durability">
-                Durability
+                Durability and Consistency
                 <a href="/arch/memorycentric.html#durability"><i class="fa fa-anchor"></i></a>
             </h2>
             <p>
                 Ignite provides strong ACID durability guarantees to the data:
+            </p>
 
             <ul class="page-list" style="margin-bottom: 20px;">
-                <li>Committed transactions will always survive any failures.</li>
+                <li>Committed transactions always survive failures.</li>
                 <li>
                     The cluster can always be recovered to the latest successfully committed transaction.
                 </li>
-                <li>
-                    The cluster restarts are very fast.
-                </li>
             </ul>
-            </p>
 
-            <h2 style="padding-top: 10px;" id="redundancy">
-                Redundancy
-                <a href="/arch/memorycentric.html#redundancy"><i class="fa fa-anchor"></i></a>
+
+            <h2 style="padding-top: 10px;" id="write-ahead-log">
+                Write-Ahead Logging and Checkpointing
+                <a href="/arch/memorycentric.html#write-ahead-log"><i class="fa fa-anchor"></i></a>
             </h2>
             <p>
-                Ignite also allows to configure multiple <b>backup copies</b> to guarantee data resiliency
-                in case of failures.
+                If Ignite native persistence is selected as a disk tier, then every time a record is updated in memory,
+                the change is added to the write-ahead log (WAL). The purpose of the WAL is to propagate updates to
+                disk in the fastest way possible and provide a consistent recovery mechanism that supports full cluster
+                failures.
             </p>
 
-            <h2 style="padding-top: 10px;" id="consistency">
-                Consistency
-                <a href="/arch/memorycentric.html#consistency"><i class="fa fa-anchor"></i></a>
-            </h2>
             <p>
-                Regardless of which replication scheme is used, Ignite guarantees data consistency across
-                all cluster members.
+                As WAL grows, it periodically gets checkpointed to the main storage. Checkpointing is the process of
+                copying dirty pages from the memory tier to the partition files on disk. A dirty page is a page that was
+                updated in memory, was appended to WAL, but was not written to a respective partition file on disk yet.
             </p>
 
-            <h2 style="padding-top: 10px;" id="write-ahead-log">
-                Write-Ahead Log
-                <a href="/arch/memorycentric.html#write-ahead-log"><i class="fa fa-anchor"></i></a>
-            </h2>
+            <div class="page-heading">Learn More</div>
             <p>
-                Every time the data is updated in memory, the update will be appended to the tail of
-                the write-ahead log (WAL). The purpose of the WAL is to propagate updates to disk in
-                the fastest way possible and provide a consistent recovery mechanism that supports full cluster failures.
+                <a href="/arch/persistence.html">
+                    <b>Native Persistence <i class="fa fa-angle-double-right"></i></b>
+                </a>
             </p>
-
-            <h2 style="padding-top: 10px;" id="checkpointing">
-                Checkpointing
-                <a href="/arch/memorycentric.html#checkpointing"><i class="fa fa-anchor"></i></a>
-            </h2>
             <p>
-                As WAL grows, it periodically gets <i>checkpointed</i> to the main storage.
-                Checkpointing is the process of copying <i>dirty pages</i> from memory to the partition files on disk.
-                A dirty page is a page that was updated in memory, was appended to WAL, but was not written to a respective partition
-                file on disk yet.
+                <a href="/features/datagrid.html">
+                    <b>Ignite as an In-Memory Data Grid <i class="fa fa-angle-double-right"></i></b>
+                </a>
             </p>
-
-            <h2 style="padding-top: 10px;" id="peristence-config">
-                Persistence Configuration
-                <a href="/arch/memorycentric.html#peristence-config"><i class="fa fa-anchor"></i></a>
-            </h2>
             <p>
-                To enable Ignite persistence, add the following configuration parameter to the cluster's
-                node configuration:
+                <a href="/use-cases/in-memory-database.html">
+                    <b>Ignite as an In-Memory Database <i class="fa fa-angle-double-right"></i></b>
+                </a>
+            </p>
+            <p>
+                <a href="/use-cases/dih.html">
+                    <b>Ignite as a Digital Integration Hub <i class="fa fa-angle-double-right"></i></b>
+                </a>
+            </p>
+            <p>
+                <a href="/use-cases/hpc.html">
+                    <b>Ignite for High Performance Computing <i class="fa fa-angle-double-right"></i></b>
+                </a>
             </p>
-            <div class="tab-content">
-                <div class="tab-pane active" id="configuration">
-                    <pre class="brush:xml">
-                        <bean class="org.apache.ignite.configuration.IgniteConfiguration">
-                            <!-- Enabling Apache Ignite native persistence. -->
-                            <property name="dataStorageConfiguration">
-                                <bean class="org.apache.ignite.configuration.DataStorageConfiguration">
-                                    <property name="defaultDataRegionConfiguration">
-                                        <bean class="org.apache.ignite.configuration.DataRegionConfiguration">
-                                            <property name="persistenceEnabled" value="true"/>
-                                        </bean>
-                                    </property>
-                                </bean>
-                            </property>
-
-                            <!-- Additional setting. -->
-
-                        </bean>
-                    </pre>
-                </div>
-            </div><br/>
-
-            <h2 style="padding-top: 10px;" id="more">
-                More on Memory-Centric Storage
-                <a href="/arch/memorycentric.html#more"><i class="fa fa-anchor"></i></a>
-            </h2>
-            <table class="formatted" name="Deployment Options Features">
-                <thead>
-                <tr>
-                    <th width="35%" class="left">Feature</th>
-                    <th>Description</th>
-                </tr>
-                </thead>
-                <tbody>
-                <tr>
-                    <td class="left">Persistence</td>
-                    <td>
-                        <p>
-                            Ignite native persistence is a distributed, ACID, and <nobr>SQL-compliant</nobr> disk store
-                            that transparently integrates with Ignite memory-centric storage:
-                        </p>
-                        <div  class="page-links">
-                            <a href="/arch/persistence.html">Docs for this feature <i class="fa fa-angle-double-right"></i></a>
-                        </div>
-                    </td>
-                </tr>
-                <tr>
-                    <td class="left">Partitioning & Replication</td>
-                    <td>
-                        <p>
-                            Depending on the configuration, Ignite can either <i>partition</i> or <i>replicate</i>
-                            data. Unlike <code>REPLICATED</code> mode, where data is fully replicated across
-                            all nodes in the cluster, in <code>PARTITIONED</code> mode Ignite will equally split the data
-                            across multiple cluster nodes.
-                        </p>
-                        <div class="page-links">
-                            <a href="http://apacheignite.readme.io/docs/cache-modes" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a>
-                        </div>
-                    </td>
-                </tr>
-                <tr>
-                    <td class="left">Distributed Database</td>
-                    <td>
-                        <p>
-                            Apache Ignite can be used as all-in-one distributed database that supports SQL, key-value,
-                            compute, machine learning and other data processing APIs:
-                        </p>
-                        <div  class="page-links">
-                            <a href="/use-cases/database/distributed-database.html">Docs for this feature <i class="fa fa-angle-double-right"></i></a>
-                        </div>
-                    </td>
-                </tr>
-                <tr>
-                    <td class="left">In-Memory Database</td>
-                    <td>
-                        <p>
-                            Apache Ignite can be used as a distributed and horizontally scalable in-memory database (IMDB):
-                        </p>
-                        <div  class="page-links">
-                            <a href="/use-cases/database/in-memory-database.html">Docs for this feature <i class="fa fa-angle-double-right"></i></a>
-                        </div>
-                    </td>
-                </tr>
-                <tr>
-                    <td class="left">Data Grid</td>
-                    <td>
-                        <p>
-                            Ignite can act as a data grid that is a distributed, transactional key-value store. Unlike
-                            other in-memory data grids (IMDG), Ignite enables storing data both, in memory and on disk,
-                            and therefore is able to store more data than can fit in physical memory:
-                        </p>
-                        <div class="page-links">
-                            <a href="/features/datagrid.html">Docs for this Feature <i class="fa fa-angle-double-right"></i></a>
-                        </div>
-                    </td>
-                </tr>
-                <tr>
-                    <td class="left">Database Caching</td>
-                    <td>
-                        <p>
-                            Ignite is used as a caching layer (aka. data grid) above 3rd party databases such as RDBMS,
-                            Apache Cassandra, MongoDB:
-                        </p>
-                        <div class="page-links">
-                            <a href="/use-cases/caching/database-caching.html">Docs for this Feature <i class="fa fa-angle-double-right"></i></a>
-                        </div>
-                    </td>
-                </tr>
-                </tbody>
-            </table>
         </section>
     </main>
 

Modified: ignite/site/branches/ignite-redisign/includes/header.html
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/includes/header.html?rev=1873876&r1=1873875&r2=1873876&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/includes/header.html (original)
+++ ignite/site/branches/ignite-redisign/includes/header.html Tue Feb 11 00:45:25 2020
@@ -36,19 +36,16 @@
                                 <li class="dropdown" style="cursor: pointer;">
                                     <a class="dropdown-toggle" data-toggle="dropdown" aria-label="Features">Features<span class="caret"></span></a>
                                     <ul class="dropdown-menu" role="menu">
-                                        <li role="presentation" class="submenu-header" >Overview</li>
-                                        <li><a href="/whatisignite.html" aria-label="Overview"
-                                               onclick="ga('send', 'event', 'whatisignite', 'menu_click', 'whatisignite_page');">
-                                            What is Apache Ignite&reg;?</a>
-                                        </li>
-                                        <li class="divider">
-
                                             <!-- Ignite main features. -->
                                         <li role="presentation" class="submenu-header">Features</li>
                                         <li><a href="/arch/memorycentric.html" aria-label="Memory Centric Storage"
                                                onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'memory_centric');">
                                             Memory-Centric Storage</a>
                                         </li>
+                                        <li><a href="/arch/persistence.html"
+                                               onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'persistence');">
+                                            Native Persistence</a>
+                                        </li>
                                         <li><a href="/features/sql.html" aria-label="Features"
                                                onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'distributed_sql');">
                                             Distributed SQL</a>
@@ -57,10 +54,6 @@
                                                onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'distributed_key_value');">
                                             Distributed Key-Value</a>
                                         </li>
-                                        <li><a href="/arch/persistence.html"
-                                        onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'persistence');">
-                                        Native Persistence</a>
-                                        </li>
                                         <li><a href="/features/transactions.html" aria-label="Transactions"
                                                onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'acid_transactions');">
                                             ACID Transactions</a>
@@ -73,10 +66,6 @@
                                                onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'machine_learning');">
                                             Machine Learning</a>
                                         </li>
-                                        <li><a href="/features/tensorflow.html" aria-label="Tensor Flow"
-                                               onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'tensorflow');">
-                                            TensorFlow Integration</a>
-                                        </li>
                                         <li><a href="/features/multilanguage.html" aria-label="Multilanguage"
                                                onclick="ga('send', 'event', 'apache_ignite_features', 'menu_click', 'multi_language');">
                                             Multi-Language</a>
@@ -168,6 +157,10 @@
 
                                         <li class="divider">
                                         <li role="presentation" class="submenu-header">Learning Ignite</li>
+                                        <li><a href="/whatisignite.html" aria-label="Overview"
+                                               onclick="ga('send', 'event', 'whatisignite', 'menu_click', 'whatisignite_page');">
+                                            FAQ</a>
+                                        </li>
                                         <li><a href="/blogs.html">Blogs</a></li>
                                         <li><a href="https://github.com/apache/ignite/tree/master/examples" target="_blank" rel="noopener">
                                             Examples <i class="fa fa-external-link" style="padding-left:5px;"></i></a></li>

Modified: ignite/site/branches/ignite-redisign/use-cases/hadoop-acceleration.html
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/use-cases/hadoop-acceleration.html?rev=1873876&r1=1873875&r2=1873876&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/use-cases/hadoop-acceleration.html (original)
+++ ignite/site/branches/ignite-redisign/use-cases/hadoop-acceleration.html Tue Feb 11 00:45:25 2020
@@ -172,6 +172,11 @@ under the License.
                     <b>Ignite DataFrames in Details <i class="fa fa-angle-double-right"></i></b>
                 </a>
             </p>
+            <p>
+                <a href="/use-cases/dih.html">
+                    <b>Ignite as a Digital Integration Hub <i class="fa fa-angle-double-right"></i></b>
+                </a>
+            </p>
         </section>
     </main>
 

Modified: ignite/site/branches/ignite-redisign/use-cases/in-memory-cache.html
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/use-cases/in-memory-cache.html?rev=1873876&r1=1873875&r2=1873876&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/use-cases/in-memory-cache.html (original)
+++ ignite/site/branches/ignite-redisign/use-cases/in-memory-cache.html Tue Feb 11 00:45:25 2020
@@ -164,7 +164,7 @@ under the License.
                 </a>
             </p>
             <p>
-                <a href="TODO">
+                <a href="/use-cases/dih.html">
                     <b>Ignite as a Digital Integration Hub <i class="fa fa-angle-double-right"></i></b>
                 </a>
             </p>

Modified: ignite/site/branches/ignite-redisign/use-cases/in-memory-database.html
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/use-cases/in-memory-database.html?rev=1873876&r1=1873875&r2=1873876&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/use-cases/in-memory-database.html (original)
+++ ignite/site/branches/ignite-redisign/use-cases/in-memory-database.html Tue Feb 11 00:45:25 2020
@@ -172,7 +172,7 @@ under the License.
                 </a>
             </p>
             <p>
-                <a href="TODO">
+                <a href="/use-cases/dih.html">
                     <b>Ignite as a Digital Integration Hub <i class="fa fa-angle-double-right"></i></b>
                 </a>
             </p>

Modified: ignite/site/branches/ignite-redisign/use-cases/spark-acceleration.html
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/use-cases/spark-acceleration.html?rev=1873876&r1=1873875&r2=1873876&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/use-cases/spark-acceleration.html (original)
+++ ignite/site/branches/ignite-redisign/use-cases/spark-acceleration.html Tue Feb 11 00:45:25 2020
@@ -136,7 +136,11 @@ under the License.
                     <b>Ignite DataFrames in Details <i class="fa fa-angle-double-right"></i></b>
                 </a>
             </p>
-
+            <p>
+                <a href="/use-cases/dih.html">
+                    <b>Ignite as a Digital Integration Hub <i class="fa fa-angle-double-right"></i></b>
+                </a>
+            </p>
         </section>
     </main>