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/03/11 22:11:46 UTC

svn commit: r1875105 [3/7] - in /ignite/site/branches/ignite-redisign: ./ arch/ community/ css/ features/ scss/ use-cases/

Modified: ignite/site/branches/ignite-redisign/features.html
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/features.html?rev=1875105&r1=1875104&r2=1875105&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/features.html (original)
+++ ignite/site/branches/ignite-redisign/features.html Wed Mar 11 22:11:46 2020
@@ -47,13 +47,15 @@ under the License.
 <body>
 <div  class="page-links" id="wrapper">
     <!--#include virtual="/includes/header.html" -->
-
-    <main id="main" role="main" class="container">
-        <section id="components" class="page-section">
-            <h1 class="first">Product Features</h1>
-            <p>Apache Ignite memory-centric database and caching platform comprises the following set of components:</p>
-            <div class="col-sm-12 col-md-12 col-xs-12 page-menu">
-                <div class="col-sm-4 col-md-4 col-xs-12">
+<article>
+    <div class="container">
+        
+				<h1>Product <strong>Features</strong></h1>
+				<p>Apache Ignite memory-centric database and caching platform comprises the following set of components:</p>
+			
+		
+		<div class="row">
+			                <div class="col-sm-4 col-md-4 col-xs-12">
                     <h3>Main Features</h3>
                     <ul>
                         <li><a href="/arch/multi-tier-storage.html" aria-label="Memory Centric"
@@ -127,7 +129,6 @@ under the License.
                         </li>
                     </ul>
                 </div>
-
                 <div class="col-sm-4 col-md-4 col-xs-12">
                     <h3 class="last">Hadoop & Spark</h3>
                     <ul class="last">
@@ -141,20 +142,12 @@ under the License.
                                onclick="ga('send', 'event', 'apache_ignite_usecases', 'menu_click', 'hadoop_acceleration');">
                             Apache Hadoop Acceleration</a>
                         </li>
-                        <li class="empty"></li>
-                        <li class="empty"></li>
-                        <li class="empty"></li>
-                        <li class="empty"></li>
                     </ul>
                 </div>
-
-            </div>
-            <p>&nbsp;</p>
-        </section>
-    </main>
-
-    <!--#include virtual="/includes/footer.html" -->
+		</div>
 </div>
+</article>
+<!--#include virtual="/includes/footer.html" -->
 <!--#include virtual="/includes/scripts.html" -->
 </body>
 </html>

Modified: ignite/site/branches/ignite-redisign/features/collocatedprocessing.html
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/features/collocatedprocessing.html?rev=1875105&r1=1875104&r2=1875105&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/features/collocatedprocessing.html (original)
+++ ignite/site/branches/ignite-redisign/features/collocatedprocessing.html Wed Mar 11 22:11:46 2020
@@ -53,45 +53,43 @@ under the License.
     <!--#include virtual="/includes/sh.html" -->
 </head>
 <body>
-<div id="wrapper">
-    <!--#include virtual="/includes/header.html" -->
 
-    <main id="main" role="main" class="container">
-        <section id="compute" class="page-section">
-            <h1 class="first">Minimizing Network Utilization With Co-located Processing</h1>
-            <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>
-                        In traditional disk-based systems, such as relational or NoSQL databases, client applications
-                        usually bring data from servers, use the records for local calculations, and discard the data as
-                        soon as the business task is complete. This approach does not scale well if a significant volume
-                        of data gets transferred over the network.
-                    </p>
-                    <p>
-                        To overcome this issue, Apache Ignite supports a co-located processing technique. The primary
-                        aim of the technique is to increase the performance of your complex calculations or SQL with
-                        JOINs by running them straight on Ignite cluster nodes. In co-located processing, calculations
-                        are done on local data sets of the cluster nodes, thus, avoiding records shuffling over the
-                        network and eliminating the impact of network latency on the performance of your applications.
-                    </p>
-                </div>
-                <div class="col-sm-6 col-md-6 col-xs-12" style="padding-right:0">
-                    <img class="img-responsive" src="/images/collocated_processing.png" width="440px" style="float: right; margin-top: -25px;"/>
-                </div>
-            </div>
-
-            <div class="page-heading">Data Co-location</div>
-            <p>
-                To use co-located processing in practice, first, you need to co-locate data sets by storing
-                related records on the same cluster node. This process is also known as affinity co-location in Ignite.
-            </p>
-            <p>
-                For example, let's introduce <code>Country</code> and <code>City</code> tables and co-locate
-                all <code>City</code> records that have the same <code>Country</code> identifier on a single node. To
-                achieve this, you need to set <code>CountryCode</code> as an <code>affinityKey</code> in <code>City</code>
-                table:
-            </p>
-            <div class="tab-content">
+<!--#include virtual="/includes/header.html" -->
+<article>
+    <div class="container">
+        
+        <h1>Minimizing Network Utilization <strong>With Co-located Processing</strong></h1>
+           
+        <img class="diagram-right img-responsive" src="/images/collocated_processing.png" />
+        <p>
+            In traditional disk-based systems, such as relational or NoSQL databases, client applications
+            usually bring data from servers, use the records for local calculations, and discard the data as
+            soon as the business task is complete. This approach does not scale well if a significant volume
+            of data gets transferred over the network.
+        </p>
+        <p>
+            To overcome this issue, Apache Ignite supports a co-located processing technique. The primary
+            aim of the technique is to increase the performance of your complex calculations or SQL with
+            JOINs by running them straight on Ignite cluster nodes. In co-located processing, calculations
+            are done on local data sets of the cluster nodes, thus, avoiding records shuffling over the
+            network and eliminating the impact of network latency on the performance of your applications.
+        </p>
+        
+                    
+
+        <h2>Data Co-location</h2>
+        <p>
+            To use co-located processing in practice, first, you need to co-locate data sets by storing
+            related records on the same cluster node. This process is also known as affinity co-location in Ignite.
+        </p>
+        <p>
+            For example, let's introduce <code>Country</code> and <code>City</code> tables and co-locate
+            all <code>City</code> records that have the same <code>Country</code> identifier on a single node. To
+            achieve this, you need to set <code>CountryCode</code> as an <code>affinityKey</code> in <code>City</code>
+            table:
+        </p>
+            
+        <div class="tab-content">
 
                 <div class="tab-pane active" id="sql-tables">
                         <pre class="brush:sql">
@@ -117,6 +115,7 @@ under the License.
                         </pre>
                 </div>
             </div>
+            
             <p>
                 This way, you instruct Ignite to store all the <code>Cities</code> with the same <code>CountryCode
                 </code> on a single cluster node. As soon as the data is co-located, Ignite can execute compute and
@@ -124,7 +123,7 @@ under the License.
                 utilization.
             </p>
 
-            <div class="page-heading">SQL and Distributed JOINs</div>
+            <h2>SQL and Distributed JOINs</h2>
             <p>
                 Ignite SQL engine performs much faster if a query gets executed against co-located records. This is
                 especially crucial for SQL with JOINs that can span many cluster nodes.
@@ -151,7 +150,7 @@ under the License.
                 </code> with the same <code>city.countrycode</code> are stored on a single node.
             </p>
 
-            <div class="page-heading">Distributed Collocated Computations</div>
+            <h2>Distributed Collocated Computations</h2>
             <p>
                 Apache Ignite compute and machine learning APIs allow you to perform computations and execute
                 machine learning algorithms in parallel to achieve high performance, low latency, and linear scalability.
@@ -221,28 +220,37 @@ ignite.compute().affinityRun("City", new
                 </div>
             </div>
 
-            <div class="page-heading">Learn More</div>
-            <p>
-                <a href="https://apacheignite.readme.io/docs/compute-grid" target="docs">
-                    <b>Compute APIs <i class="fa fa-angle-double-right"></i></b>
-                </a>
-            </p>
-            <p>
-                <a href="/features/machinelearning.html">
-                    <b>Machine and Deep Learning <i class="fa fa-angle-double-right"></i></b>
-                </a>
-            </p>
-            <p>
-                <a href="http://localhost/use-cases/hpc.html">
-                    <b>High Performance Computing with Apache Ignite <i class="fa fa-angle-double-right"></i></b>
-                </a>
-            </p>
-
-        </section>
-    </main>
-
+            <div class="jumbotron jumbotron-fluid">
+                <div class="container">
+                  <div class="title display-6">Learn More</div>
+                  <hr class="my-4">
+                  <div class="row">
+                    <div class="col-6 col-xs-12">
+                        <p>
+                            <a href="https://apacheignite.readme.io/docs/compute-grid" target="docs">
+                                <b>Compute APIs <i class="fa fa-angle-double-right"></i></b>
+                            </a>
+                        </p>
+                        <p>
+                            <a href="/features/machinelearning.html">
+                                <b>Machine and Deep Learning <i class="fa fa-angle-double-right"></i></b>
+                            </a>
+                        </p>
+                    </div>
+                    <div class="col-6 col-xs-12">
+                        <p>
+                            <a href="http://localhost/use-cases/hpc.html">
+                                <b>High Performance Computing with Apache Ignite <i class="fa fa-angle-double-right"></i></b>
+                            </a>
+                        </p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+</article>        
     <!--#include virtual="/includes/footer.html" -->
-</div>
+
 <!--#include virtual="/includes/scripts.html" -->
 </body>
 </html>

Modified: ignite/site/branches/ignite-redisign/features/computegrid.html
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/features/computegrid.html?rev=1875105&r1=1875104&r2=1875105&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/features/computegrid.html (original)
+++ ignite/site/branches/ignite-redisign/features/computegrid.html Wed Mar 11 22:11:46 2020
@@ -45,14 +45,18 @@ under the License.
     <!--#include virtual="/includes/sh.html" -->
 </head>
 <body>
-<div id="wrapper">
-    <!--#include virtual="/includes/header.html" -->
 
-    <main id="main" role="main" class="container">
-        <section id="computegrid" class="page-section">
-            <h1 class="first">In-Memory Compute Grid</h1>
-            <div class="col-sm-12 col-md-12 col-xs-12" style="padding:0px;">
-                <div class="col-sm-6 col-md-7 col-xs-12" style="padding-left:0; padding-right:0">
+	
+<main id="main" role="main" class="container">
+    <section id="compute-grid" class="page-section internal-page">	
+		<div class="row">
+			<div class="col-12">
+				 <h1 class="first">In-Memory Compute Grid</h1>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-12">
+				  <div class="col-sm-6 col-md-7 col-xs-12" style="padding-left:0; padding-right:0">
                     <p>
                         Ignite In-Memory Compute Grid allows executing distributed computations in a parallel fashion to gain high performance,
                         low latency, and linear scalability. Ignite compute grid provides a set of simple APIs
@@ -76,13 +80,16 @@ under the License.
                         </ul>
                     </div>
                 </div>
-                <br/>
                 <div class="col-sm-6 col-md-5 col-xs-12" style="padding-right:0">
                     <img class="img-responsive" src="/images/collocated_processing.png" width="400px" style="float:right;"/>
                 </div>
-            </div>
-            <div class="code-examples">
-                <div class="page-heading">Code Examples:</div>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-12">
+			<h2>Code Examples:</h2>
+			<div class="code-examples">
+                
                 <!-- Nav tabs -->
                 <ul id="compute-examples" class="nav nav-tabs">
                     <li class="active"><a href="#compute-example-broadcast" aria-controls="home" data-toggle="tab">Broadcast</a></li>
@@ -131,14 +138,19 @@ under the License.
                     </div>
                 </div>
             </div>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-12">
+			     <h2>GitHub Examples:</h2>
+            		<p>
+                		Also see <a href="https://github.com/apache/ignite/tree/master/examples/src/main/java/org/apache/ignite/examples/computegrid" target="github">Java 7 examples</a> and <a href="https://github.com/apache/ignite/tree/master/examples/src/main/java8/org/apache/ignite/examples/java8/computegrid" target="github">Java 8 examples</a> available on GitHub.
+            		</p>
+			</div>
+		</div>
+	</section>
 
-            <div class="page-heading github-examples">GitHub Examples:</div>
-            <p>
-                Also see <a href="https://github.com/apache/ignite/tree/master/examples/src/main/java/org/apache/ignite/examples/computegrid" target="github">Java 7 examples</a>
-                and <a href="https://github.com/apache/ignite/tree/master/examples/src/main/java8/org/apache/ignite/examples/java8/computegrid" target="github">Java 8 examples</a> available on GitHub.
-            </p>
-        </section>
-        <section id="key-features" class="page-section">
+	<section id="key-features" class="page-section">
             <h2>Compute Grid Features</h2>
             <table class="formatted" name="Compute Grid Features">
                 <thead>
@@ -281,9 +293,8 @@ under the License.
                 </tbody>
             </table>
         </section>
-    </main>
-
-    <!--#include virtual="/includes/footer.html" -->
+	</main>
+<!--#include virtual="/includes/footer.html" -->
 </div>
 <!--#include virtual="/includes/scripts.html" -->
 </body>

Modified: ignite/site/branches/ignite-redisign/features/datastructures.html
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/features/datastructures.html?rev=1875105&r1=1875104&r2=1875105&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/features/datastructures.html (original)
+++ ignite/site/branches/ignite-redisign/features/datastructures.html Wed Mar 11 22:11:46 2020
@@ -45,36 +45,30 @@ under the License.
     <!--#include virtual="/includes/sh.html" -->
 </head>
 <body>
-<div id="wrapper">
     <!--#include virtual="/includes/header.html" -->
-
-    <main id="main" role="main" class="container">
-        <section id="datastructures" class="page-section">
-            <h1 class="first">Distributed Data Structures</h1>
-            <p>
-                Ignite allows for most of the data structures from <code>java.util.concurrent</code>
-                framework to be used in a distributed fashion. For example, you can take
-                <code>java.util.concurrent.BlockingDeque</code> and add something to it on one node and
-                poll it from another node. Or have a distributed ID generator, which would
-                guarantee uniqueness of IDs on all nodes.
-            </p>
-            <p>
-                <div class="page-heading">Supported Data Structures:</div>
-                <ul class="page-list">
-                    <li><a href="/features/datagrid.html">Concurrent Map (Cache)</a></li>
-                    <li><a href="http://apacheignite.readme.io/docs/queue-and-set" target="docs">Distributed Queues and Sets</a></li>
-                    <li><a href="http://apacheignite.readme.io/docs/atomic-types" target="docs">AtomicLong</a></li>
-                    <li><a href="http://apacheignite.readme.io/docs/atomic-types" target="docs">AtomicReference</a></li>
-                    <li><a href="http://apacheignite.readme.io/docs/id-generator" target="docs">AtomicSequence (ID Generator)</a></li>
-                    <li><a href="http://apacheignite.readme.io/docs/countdownlatch" target="docs">CountDownLatch</a></li>
-                    <li><a href="http://apacheignite.readme.io/docs/executor-service" target="docs">ExecutorService</a></li>
-                </ul>
-            </p>
-            <div class="code-examples">
-                <div class="page-heading">Code Examples:</div>
+<article>
+<div class="container">
+    			<h1 >Distributed <strong>Data Structures</strong></h1>
+        <p>
+            Ignite allows for most of the data structures from <code>java.util.concurrent</code> framework to be used in a distributed fashion. For example, you can take <code>java.util.concurrent.BlockingDeque</code> and add something to it on one node and poll it from another node. Or have a distributed ID generator, which would guarantee uniqueness of IDs on all nodes.
+        </p>
+            
+        
+				    <h2>Supported Data Structures:</h2>
+                	<ul class="page-list">
+                    	<li><a href="/features/datagrid.html">Concurrent Map (Cache)</a></li>
+                    	<li><a href="http://apacheignite.readme.io/docs/queue-and-set" target="docs">Distributed Queues and Sets</a></li>
+                    	<li><a href="http://apacheignite.readme.io/docs/atomic-types" target="docs">AtomicLong</a></li>
+                    	<li><a href="http://apacheignite.readme.io/docs/atomic-types" target="docs">AtomicReference</a></li>
+                    	<li><a href="http://apacheignite.readme.io/docs/id-generator" target="docs">AtomicSequence (ID Generator)</a></li>
+                    	<li><a href="http://apacheignite.readme.io/docs/countdownlatch" target="docs">CountDownLatch</a></li>
+                    	<li><a href="http://apacheignite.readme.io/docs/executor-service" target="docs">ExecutorService</a></li>
+                	</ul>
+			
+                <h2>Code Examples:</h2>
                 <!-- Nav tabs -->
                 <ul id="datastructure-examples" class="nav nav-tabs">
-                    <li class="active"><a href="#example-queue" aria-controls="home" data-toggle="tab">BlockingQueue</a></li>
+                    <li><a class="active" href="#example-queue" aria-controls="home" data-toggle="tab">BlockingQueue</a></li>
                     <li><a href="#example-set" aria-controls="profile" data-toggle="tab">Set</a></li>
                     <li><a href="#example-sequence" aria-controls="profile" data-toggle="tab">AtomicSequence</a></li>
                     <li><a href="#example-long" aria-controls="profile" data-toggle="tab">AtomicLong</a></li>
@@ -171,16 +165,18 @@ under the License.
                         </pre>
                     </div>
                 </div>
-            </div>
-            <div class="page-heading">GitHub Examples:</div>
-            <p>
-                Also see <a href="https://github.com/apache/ignite/tree/master/examples/src/main/java/org/apache/ignite/examples/datastructures" target="github">data structure examples</a>
-                available on GitHub.
-            </p>
-        </section>
-        <section id="key-features" class="page-section">
+            
+                
+        <h2>GitHub Examples:</h2>
+        <p>
+            Also see <a href="https://github.com/apache/ignite/tree/master/examples/src/main/java/org/apache/ignite/examples/datastructures" target="github">data structure examples</a>
+            available on GitHub.
+        </p>
+            
+        
+
             <h2>Data Structure Features</h2>
-            <table class="formatted" name="Data Structure Features">
+            <table class="table table-bordered table-striped" name="Data Structure Features">
                 <thead>
                     <tr>
                         <th width="35%" class="left">Feature</th>
@@ -276,11 +272,10 @@ under the License.
                     </tr>
                 </tbody>
             </table>
-        </section>
-    </main>
-
-    <!--#include virtual="/includes/footer.html" -->
 </div>
+</article>        
+    <!--#include virtual="/includes/footer.html" -->
+
 <!--#include virtual="/includes/scripts.html" -->
 </body>
 </html>

Modified: ignite/site/branches/ignite-redisign/features/machinelearning.html
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/features/machinelearning.html?rev=1875105&r1=1875104&r2=1875105&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/features/machinelearning.html (original)
+++ ignite/site/branches/ignite-redisign/features/machinelearning.html Wed Mar 11 22:11:46 2020
@@ -51,39 +51,33 @@ under the License.
     <!--#include virtual="/includes/sh.html" -->
 </head>
 <body>
-<div id="wrapper">
+
     <!--#include virtual="/includes/header.html" -->
+<article>
+    <div class="container">
+        <h1>Apache Ignite <strong>Machine Learning</strong></h1>
+            <p>
+                Apache Ignite Machine Learning (ML) is a set of simple, scalable, and efficient tools that
+                allow building predictive machine learning models without costly data transfers.
+            </p>
+            <p>
+                The rationale for adding machine and deep learning (DL) to Apache Ignite is quite simple.
+                Today's data scientists have to deal with two major factors that keep ML from mainstream adoption.
+            </p>
+            <h2>Problem #1: Constant Data Movement (ETL)</h2>
 
-    <main id="main" role="main" class="container">
-        <section id="machine-learning" class="page-section">
-            <h1 class="first">Apache Ignite Machine Learning</h1>
-            <div class="col-sm-12 col-md-12 col-xs-12" style="padding-left:0; padding-right:0;">
-                <div class="col-sm-6 col-md-7 col-xs-12" style="padding-left:0; padding-right:0;">
-                    <p>
-                        Apache Ignite Machine Learning (ML) is a set of simple, scalable, and efficient tools that
-                        allow building predictive machine learning models without costly data transfers.
-                    </p>
-                    <p>
-                        The rationale for adding machine and deep learning (DL) to Apache Ignite is quite simple.
-                        Today's data scientists have to deal with two major factors that keep ML from mainstream adoption.
-                    </p>
-                    <div class="page-heading">Problem #1: Constant Data Movement (ETL)</div>
-
-                    <p>
-                        First, the models are trained and deployed (after the training is over) in different systems.
-                        The data scientists have to wait for ETL or some other data transfer process to move the data
-                        into a system like Apache Mahout or Apache Spark for a training purpose. Then they have to wait
-                        while this process completes and redeploy the models in a production environment. The whole
-                        process can take hours moving terabytes of data from one system to another. Moreover, the
-                        training part usually happens over the old data set.
-                    </p>
-                </div>
-                <div class="col-sm-6 col-md-5 col-xs-12" style="padding-right:0; top: -10px;">
-                    <img class="img-responsive" src="/images/machine_learning.png" width="440px" style="float:right;"/>
-                </div>
-            </div>
+            <img class="diagram-right img-responsive" src="/images/machine_learning.png" />
+            <p>
+                First, the models are trained and deployed (after the training is over) in different systems.
+                The data scientists have to wait for ETL or some other data transfer process to move the data
+                into a system like Apache Mahout or Apache Spark for a training purpose. Then they have to wait
+                while this process completes and redeploy the models in a production environment. The whole
+                process can take hours moving terabytes of data from one system to another. Moreover, the
+                training part usually happens over the old data set.
+            </p>
+                    
 
-            <div class="page-heading">Problem #2: Lack of Horizontal Scalability</div>
+            <h2>Problem #2: Lack of Horizontal Scalability</h2>
 
             <p>
                 The second factor relates to scalability. ML and DL algorithms have to process data sets that no
@@ -93,7 +87,7 @@ under the License.
                 training, making it a burden for the developers to decide how to deploy the models in production later.
             </p>
 
-            <div class="page-heading">Zero ETL and Massive Scalability</div>
+            <h2>Zero ETL and Massive Scalability</h2>
 
             <p>
                 Ignite Machine Learning relies on Ignite's multi-tier storage that brings massive scalability
@@ -108,7 +102,7 @@ under the License.
                 improve decisions based on the latest data as it arrives in real-time.
             </p>
 
-            <div class="page-heading">Fault Tolerance and Continuous Learning</div>
+            <h2>Fault Tolerance and Continuous Learning</h2>
             <p>
                 Ignite Machine Learning is tolerant to node failures. This means that in the case of node
                 failures during the learning process, all recovery procedures will be transparent to the user,
@@ -116,54 +110,61 @@ under the License.
                 all nodes are up and running.
             </p>
             <p><a href="https://apacheignite.readme.io/docs/machine-learning" target="_blank" rel="noopener">Read more</a></p>
-        </section>
-
-        <section id="ga-grid" class="page-section">
-            <div class="col-sm-12 col-md-12 col-xs-12">
-                <div class="col-sm-6 col-md-7 col-xs-12" style="padding-left:0; padding-right:15px;">
-                    <h2 style="padding-bottom: 5px; margin-bottom: 20px;">Genetic Algorithms</h2>
-
-                    <p>
-                        The Ignite Machine Learning component comes with a set of genetic algorithms (GA), which is a
-                        method of solving optimization problems by simulating the process of biological evolution.
-                    </p>
-                    <p>
-                        GAs are excellent for searching through large and complex data sets for an optimal solution.
-                        Real-world applications of GAs include:  automotive design, computer gaming, robotics, investments,
-                        traffic/shipment routing, and more.
-                    </p>
-
-                    <div class="page-links">
-                        <a href="https://apacheignite.readme.io/docs/genetic-algorithms" target="_blank" rel="noopener">Genetic Algorithms<i class="fa fa-angle-double-right"></i></a>
-                    </div>
-                </div>
-                <div class="col-sm-6 col-md-5 col-xs-12" style="padding-right:0;">
-                    <a href="/images/GAGrid_Overview.png"><img class="img-responsive" src="/images/GAGrid_Overview.png"></a>&nbsp;
-                    <p class="img-caption">Click on the image to view full size.</p>
-                </div>
-            </div><p>&nbsp;</p>
-
-            <div class="page-heading">Learn More</div>
+            <a href="/images/GAGrid_Overview.png"><img class="img-responsive diagram-right" src="/images/GAGrid_Overview.png"></a>
+            <h2 style="padding-bottom: 5px; margin-bottom: 20px;">Genetic Algorithms</h2>
+            
             <p>
-                <a href="https://apacheignite.readme.io/docs/machine-learning" target="docs">
-                    <b>Ignite Machine Learning Documentation <i class="fa fa-angle-double-right"></i></b>
-                </a>
+                The Ignite Machine Learning component comes with a set of genetic algorithms (GA), which is a
+                method of solving optimization problems by simulating the process of biological evolution.
             </p>
             <p>
-                <a href="https://apacheignite.readme.io/docs/ml-partition-based-dataset" target="docs">
-                    <b>Partition-Based Data Sets <i class="fa fa-angle-double-right"></i></b>
-                </a>
+                GAs are excellent for searching through large and complex data sets for an optimal solution.
+                Real-world applications of GAs include:  automotive design, computer gaming, robotics, investments,
+                traffic/shipment routing, and more.
             </p>
-            <p>
-                <a href="/features/tensorflow.html">
-                    <b>Apache Ignite integration for TensorFlow <i class="fa fa-angle-double-right"></i></b>
-                </a>
-            </p>
-        </section>
-    </main>
+
+            <div class="page-links">
+                <a href="https://apacheignite.readme.io/docs/genetic-algorithms" target="_blank" rel="noopener">Genetic Algorithms<i class="fa fa-angle-double-right"></i></a>
+            </div>
+                
+        
+            
+                
+
+            <div class="jumbotron jumbotron-fluid">
+                <div class="container">
+                  <div class="title display-6">Learn More</div>
+                  <hr class="my-4">
+                  <div class="row">
+                    <div class="col-6 col-xs-12">
+                        <p>
+                            <a href="https://apacheignite.readme.io/docs/machine-learning" target="docs">
+                                <b>Ignite Machine Learning Documentation <i class="fa fa-angle-double-right"></i></b>
+                            </a>
+                        </p>
+                        <p>
+                            <a href="https://apacheignite.readme.io/docs/ml-partition-based-dataset" target="docs">
+                                <b>Partition-Based Data Sets <i class="fa fa-angle-double-right"></i></b>
+                            </a>
+                        </p>
+                    </div>
+                    <div class="col-6 col-xs-12">
+                        <p>
+                            <a href="/features/tensorflow.html">
+                                <b>Apache Ignite integration for TensorFlow <i class="fa fa-angle-double-right"></i></b>
+                            </a>
+                        </p>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+    </div>
+    
+</article>
 
     <!--#include virtual="/includes/footer.html" -->
-</div>
+
 <!--#include virtual="/includes/scripts.html" -->
 </body>
 </html>

Modified: ignite/site/branches/ignite-redisign/features/manageandmonitor.html
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/features/manageandmonitor.html?rev=1875105&r1=1875104&r2=1875105&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/features/manageandmonitor.html (original)
+++ ignite/site/branches/ignite-redisign/features/manageandmonitor.html Wed Mar 11 22:11:46 2020
@@ -42,15 +42,13 @@ under the License.
     <!--#include virtual="/includes/sh.html" -->
 </head>
 <body>
-<div id="wrapper">
-    <!--#include virtual="/includes/header.html" -->
 
-
-    <main id="main" role="main" class="container">
-        <section id="datavisualization" class="page-section">
-            <h1 class="first">Apache Ignite&reg Management and Monitoring</h1>
+<!--#include virtual="/includes/header.html" -->
+<article>
+    <div class="container">
+        <h1 >Apache Ignite <strong>Management and Monitoring</strong></h1>
             <p>
-                Apache Ignite exposes metrics in JMX and OpenCensus formats making it possible to monitor the
+                Apache Ignite&reg; exposes metrics in JMX and OpenCensus formats making it possible to monitor the
                 clusters with a broad range of tools, including Zabbix, Prometheus, Grafana, App Dynamics.
             </p>
             <p>
@@ -59,73 +57,56 @@ under the License.
                 In addition to the monitoring capabilities, those tools let us manage Ignite clusters and execute
                 Ignite-specific operations straight from the UI.
             </p>
-        </section>
+        
+            <a href="/images/webconsole-sql.png"><img class="diagram-right img-responsive" src="/images/webconsole-sql.png"></a>
+            <h2>
+                <a href="https://console.gridgain.com/" target="_blank" rel="noopener">
+                    <img style="margin-bottom:10px;" height="35"; width="40" src="/images/logo_ignite_32_32.png">
+                </a>Ignite Web Console
+            </h2>
+            
+            <p>Ignite Web Console is an interactive web-based management tool that lets you:</p>
+            <ul class="page-list">
+                <li>Create and download various configurations to use for your Apache Ignite cluster.</li>
+                <li>Import database schemas from virtually any RDBMS.</li>
+                <li>Execute SQL queries over distributed data sets and view the execution plans.</li>
+            </ul>
+
+            <p>Refer to the <a href="https://apacheignite-tools.readme.io/docs/ignite-web-console" target="_blank"
+                    rel="noopener">Ignite Web Console</a> documentation for more details.</p>
+
+            
+            <p style="clear:both;">&nbsp;</p>
+    
+            
+            <h2 style="padding-bottom: 5px;">
+                <a href="https://console.gridgain.com/" target="_blank" rel="noopener">
+                    <img style="margin-bottom:10px;" height="35"; width="40" src="/images/gg-iso-70x80.png">
+                </a>GridGain Web Console
+            </h2>
+            <a href="/images/ggwc-dashboard.png"><img class="img-responsive diagram-right" src="/images/ggwc-dashboard.png"></a>
+            <p>GridGain Web Console is a free management and monitoring tool,
+                built on top of Apache Ignite Web Console that allows you to do the following:</p>
+            <ul class="page-list">
+                <li>Use all the capabilities of Ignite Web Console.</li>
+                <li>Manage and Monitor Ignite nodes and caches.</li>
+                <li>View heap, CPU, and other useful node and cache metrics.</li>
+            </ul>
 
-        <section id="apache-ignite-web-console" class="page-section">
-            <div class="col-sm-12 col-md-12 col-xs-12">
-                <div class="col-sm-6 col-md-7 col-xs-12" style="padding-left:0; padding-right:15px;">
-                    <h2 style="padding-bottom: 5px;">
-                        <a href="https://console.gridgain.com/" target="_blank" rel="noopener">
-                            <img style="margin-bottom:10px;" height="35"; width="40" src="/images/logo_ignite_32_32.png">
-                        </a>Ignite Web Console
-                    </h2>
-
-                    <p>Ignite Web Console is an interactive web-based management tool that lets you:</p>
-                    <ul class="page-list">
-                        <li>Create and download various configurations to use for your Apache Ignite cluster.</li>
-                        <li>Import database schemas from virtually any RDBMS.</li>
-                        <li>Execute SQL queries over distributed data sets and view the execution plans.</li>
-                    </ul>
-
-                    <p>Refer to the <a href="https://apacheignite-tools.readme.io/docs/ignite-web-console" target="_blank"
-                            rel="noopener">Ignite Web Console</a> documentation for more details.</p>
-
-                </div>
-                <div class="col-sm-6 col-md-5 col-xs-12" style="padding-right:0;">
-                    <a href="/images/webconsole-sql.png"><img class="img-responsive" src="/images/webconsole-sql.png"></a>&nbsp;
-                    <p class="img-caption">Click on the image to view full size.</p>
-                </div>
-            </div><p>&nbsp;</p>
-        </section>
-
-        <section id="tableau" class="page-section">
-            <div class="col-sm-12 col-md-12 col-xs-12">
-                <div class="col-sm-6 col-md-7 col-xs-12" style="padding-left:0; padding-right:15px;">
-                    <h2 style="padding-bottom: 5px;">
-                        <a href="https://console.gridgain.com/" target="_blank" rel="noopener">
-                            <img style="margin-bottom:10px;" height="35"; width="40" src="/images/gg-iso-70x80.png">
-                        </a>GridGain Web Console
-                    </h2>
-
-                    <p>GridGain Web Console is a free management and monitoring tool,
-                        built on top of Apache Ignite Web Console that allows you to do the following:</p>
-                    <ul class="page-list">
-                        <li>Use all the capabilities of Ignite Web Console.</li>
-                        <li>Manage and Monitor Ignite nodes and caches.</li>
-                        <li>View heap, CPU, and other useful node and cache metrics.</li>
-                    </ul>
-
-                    <p>
-                        Refer to the <a href="https://www.gridgain.com/docs/web-console/" target="_blank" rel="noopener">GridGain Web Console</a>
-                        documentation for more details and check out a
-                        <a href="https://console.gridgain.com" target="_blank" rel="noopener">hosted version</a>
-                        skipping the installation phase.
-                    </p>
-
-
-                </div>
-                <div class="col-sm-6 col-md-5 col-xs-12" style="padding-right:0;">
-                    <a
-                            href="/images/ggwc-dashboard.png"><img class="img-responsive"
-                                                                   src="/images/ggwc-dashboard.png"></a>&nbsp;
-                    <p class="img-caption">Click on the image to view full size.</p>
-                </div>
-            </div><p>&nbsp;</p>
-        </section>
-    </main>
+            <p>
+                Refer to the <a href="https://www.gridgain.com/docs/web-console/" target="_blank" rel="noopener">GridGain Web Console</a>
+                documentation for more details and check out a
+                <a href="https://console.gridgain.com" target="_blank" rel="noopener">hosted version</a>
+                skipping the installation phase.
+                </p>
+                <p style="clear:both;">&nbsp;</p>
+        </div>
+</article>
+                
+                    
 
     <!--#include virtual="/includes/footer.html" -->
-</div>
+
 <!--#include virtual="/includes/scripts.html" -->
 </body>
 </html>

Modified: ignite/site/branches/ignite-redisign/features/messaging.html
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/features/messaging.html?rev=1875105&r1=1875104&r2=1875105&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/features/messaging.html (original)
+++ ignite/site/branches/ignite-redisign/features/messaging.html Wed Mar 11 22:11:46 2020
@@ -45,133 +45,127 @@ under the License.
     <!--#include virtual="/includes/sh.html" -->
 </head>
 <body>
-<div id="wrapper">
-    <!--#include virtual="/includes/header.html" -->
-
-    <main id="main" role="main" class="container">
-        <section id="messaging" class="page-section">
-            <h1 class="first">Distributed Messaging and Events</h1>
-            <p>
-                Ignite provides <b>high-performance cluster-wide messaging</b> functionality to exchange data via
-                publish-subscribe and direct point-to-point communication models. Messages can be exchanged in an
-                ordered or unordered fashion. Ordered messages are slightly slower, but when used, Ignite
-                guarantees that messages will be received in the same order they were sent.
-            </p>
-
-            <p>
-                Ignite <b>distributed events</b> functionality allows applications to receive notifications when a variety
-                of events occur in the distributed grid environment. You can automatically get notified for task executions,
-                read, write or query operations occurring on local or remote nodes within the cluster.
-                Event notifications can also be grouped together and sent in batches or timely intervals.
-            </p>
-            <div class="code-examples">
-                <div class="page-heading">Code Examples:</div>
-                <!-- Nav tabs -->
-                <ul id="messaging-examples" class="nav nav-tabs">
-                    <li class="active"><a href="#messaging-example-ordered" aria-controls="home" data-toggle="tab">Ordered Messaging</a></li>
-                    <li><a href="#messaging-example-unordered" aria-controls="profile" data-toggle="tab">Unordered Messaging</a></li>
-                    <li><a href="#events-example-local" aria-controls="profile" data-toggle="tab">Local Events</a></li>
-                    <li><a href="#events-example-remote" aria-controls="profile" data-toggle="tab">Remote Events</a></li>
-                </ul>
+ <!--#include virtual="/includes/header.html" -->
+ <article>
+    <div class="container">
+        <h1>Distributed <strong>Messaging and Events</strong></h1>
+
+        <p>
+            Ignite provides <b>high-performance cluster-wide messaging</b> functionality to exchange data via publish-subscribe and direct point-to-point communication models. Messages can be exchanged in an ordered or unordered fashion. Ordered messages are slightly slower, but when used, Ignite guarantees that messages will be received in the same order they were sent.
+        </p>
+
+        <p> Ignite <b>distributed events</b> functionality allows applications to receive notifications when a variety of events occur in the distributed grid environment. You can automatically get notified for task executions,
+        read, write or query operations occurring on local or remote nodes within the cluster.
+        Event notifications can also be grouped together and sent in batches or timely intervals.
+        </p>
+                
+        <h2>Code Examples:</h2>
+        <!-- Nav tabs -->
+        <ul id="messaging-examples" class="nav nav-tabs">
+            <li><a class="active" href="#messaging-example-ordered" aria-controls="home" data-toggle="tab">Ordered Messaging</a></li>
+            <li><a href="#messaging-example-unordered" aria-controls="profile" data-toggle="tab">Unordered Messaging</a></li>
+            <li><a href="#events-example-local" aria-controls="profile" data-toggle="tab">Local Events</a></li>
+            <li><a href="#events-example-remote" aria-controls="profile" data-toggle="tab">Remote Events</a></li>
+        </ul>
 
                 <!-- Tab panes -->
-                <div class="tab-content">
-                    <div class="tab-pane active" id="messaging-example-ordered">
-                        <pre class="brush:java">
-                            Ignite ignite = Ignition.ignite();
-
-                            IgniteMessaging rmtMsg = ignite.message(ignite.cluster().forRemotes());
-
-                            // Add listener for ordered messages on all remote nodes.
-                            rmtMsg.remoteListen("MyOrderedTopic", (nodeId, msg) -> {
-                                System.out.println("Received ordered message [msg=" + msg + ", from=" + nodeId + ']');
-
-                                return true; // Return true to continue listening.
-                            });
-
-                            // Send ordered messages to remote nodes.
-                            for (int i = 0; i < 10; i++)
-                                rmtMsg.sendOrdered("MyOrderedTopic", Integer.toString(i), 0);
-                        </pre>
-                    </div>
-                    <div class="tab-pane" id="messaging-example-unordered">
-                        <pre class="brush:java">
-                            Ignite ignite = Ignition.ignite();
-
-                            IgniteMessaging rmtMsg = ignite.message(ignite.cluster().forRemotes());
-
-                            // Add listener for unordered messages on all remote nodes.
-                            rmtMsg.remoteListen("MyUnOrderedTopic", (nodeId, msg) -> {
-                                System.out.println("Received unordered message [msg=" + msg + ", from=" + nodeId + ']');
-
-                                return true; // Return true to continue listening.
-                            });
-
-                            // Send unordered messages to remote nodes.
-                            for (int i = 0; i < 10; i++)
-                                rmtMsg.send("MyUnOrderedTopic", Integer.toString(i));
-                        </pre>
-                    </div>
-                    <div class="tab-pane" id="events-example-local">
-                        <pre class="brush:java">
-                            Ignite ignite = Ignition.ignite();
-
-                            // Local listener that listenes to local events.
-                            IgnitePredicate&lt;CacheEvent&gt; locLsnr = evt -> {
-                                System.out.println("Received local event [evt=" + evt.name() + "]");
-
-                                return true; // Continue listening.
-                            };
-
-                            // Subscribe to specified cache events occuring on local node.
-                            ignite.events().localListen(locLsnr,
-                                EventType.EVT_CACHE_OBJECT_PUT,
-                                EventType.EVT_CACHE_OBJECT_REMOVED);
-
-                            // Get an instance of named cache.
-                            final IgniteCache&lt;Integer, String&gt; cache = ignite.cache("cacheName");
-
-                            // Generate cache events.
-                            for (int i = 0; i < 20; i++)
-                                cache.put(i, Integer.toString(i));
-                        </pre>
-                    </div>
-                    <div class="tab-pane" id="events-example-remote">
-                        <pre class="brush:java">
-                            Ignite ignite = Ignition.ignite();
-
-                            // Get an instance of named cache.
-                            final IgniteCache&lt;Integer, String&gt; cache = ignite.jcache("cacheName");
-
-                            // Sample remote filter which only accepts events for keys
-                            // that are greater than or equal to 10.
-                            IgnitePredicate&lt;CacheEvent&gt; rmtLsnr = evt -> {
-                                System.out.println("Received remote event [evt=" + evt.&lt;Integer&gt;key() >= 10 + "]");
-
-                                return true; // Continue listening.
-                            };
-
-                            // Subscribe to specified cache events on all nodes that have cache running.
-                            ignite.events(ignite.cluster().forCacheNodes("cacheName")).remoteListen(null, rmtLsnr,
-                                EventType.EVT_CACHE_OBJECT_PUT,
-                                EventType.EVT_CACHE_OBJECT_REMOVED);
-
-                            // Generate cache events.
-                            for (int i = 0; i < 20; i++)
-                                cache.put(i, Integer.toString(i));
-                        </pre>
-                    </div>
-                </div>
+        <div class="tab-content">
+            <div class="tab-pane active" id="messaging-example-ordered">
+                <pre class="brush:java">
+                    Ignite ignite = Ignition.ignite();
+
+                    IgniteMessaging rmtMsg = ignite.message(ignite.cluster().forRemotes());
+
+                    // Add listener for ordered messages on all remote nodes.
+                    rmtMsg.remoteListen("MyOrderedTopic", (nodeId, msg) -> {
+                        System.out.println("Received ordered message [msg=" + msg + ", from=" + nodeId + ']');
+
+                        return true; // Return true to continue listening.
+                    });
+
+                    // Send ordered messages to remote nodes.
+                    for (int i = 0; i < 10; i++)
+                        rmtMsg.sendOrdered("MyOrderedTopic", Integer.toString(i), 0);
+                </pre>
+            </div>
+            <div class="tab-pane" id="messaging-example-unordered">
+                <pre class="brush:java">
+                    Ignite ignite = Ignition.ignite();
+
+                    IgniteMessaging rmtMsg = ignite.message(ignite.cluster().forRemotes());
+
+                    // Add listener for unordered messages on all remote nodes.
+                    rmtMsg.remoteListen("MyUnOrderedTopic", (nodeId, msg) -> {
+                        System.out.println("Received unordered message [msg=" + msg + ", from=" + nodeId + ']');
+
+                        return true; // Return true to continue listening.
+                    });
+
+                    // Send unordered messages to remote nodes.
+                    for (int i = 0; i < 10; i++)
+                        rmtMsg.send("MyUnOrderedTopic", Integer.toString(i));
+                </pre>
+            </div>
+            <div class="tab-pane" id="events-example-local">
+                <pre class="brush:java">
+                    Ignite ignite = Ignition.ignite();
+
+                    // Local listener that listenes to local events.
+                    IgnitePredicate&lt;CacheEvent&gt; locLsnr = evt -> {
+                        System.out.println("Received local event [evt=" + evt.name() + "]");
+
+                        return true; // Continue listening.
+                    };
+
+                    // Subscribe to specified cache events occuring on local node.
+                    ignite.events().localListen(locLsnr,
+                        EventType.EVT_CACHE_OBJECT_PUT,
+                        EventType.EVT_CACHE_OBJECT_REMOVED);
+
+                    // Get an instance of named cache.
+                    final IgniteCache&lt;Integer, String&gt; cache = ignite.cache("cacheName");
+
+                    // Generate cache events.
+                    for (int i = 0; i < 20; i++)
+                        cache.put(i, Integer.toString(i));
+                </pre>
             </div>
-            <div class="page-heading">GitHub Examples:</div>
-            <p>
-                Also see <a href="https://github.com/apache/ignite/tree/master/examples/src/main/java/org/apache/ignite/examples/messaging" target="github">messaging examples</a>
-                available on GitHub.
-            </p>
-        </section>
-        <section id="key-features" class="page-section">
-            <h2>Messaging & Events Features</h2>
-            <table class="formatted" name="Messaging Features">
+            <div class="tab-pane" id="events-example-remote">
+                <pre class="brush:java">
+                    Ignite ignite = Ignition.ignite();
+
+                    // Get an instance of named cache.
+                    final IgniteCache&lt;Integer, String&gt; cache = ignite.jcache("cacheName");
+
+                    // Sample remote filter which only accepts events for keys
+                    // that are greater than or equal to 10.
+                    IgnitePredicate&lt;CacheEvent&gt; rmtLsnr = evt -> {
+                        System.out.println("Received remote event [evt=" + evt.&lt;Integer&gt;key() >= 10 + "]");
+
+                        return true; // Continue listening.
+                    };
+
+                    // Subscribe to specified cache events on all nodes that have cache running.
+                    ignite.events(ignite.cluster().forCacheNodes("cacheName")).remoteListen(null, rmtLsnr,
+                        EventType.EVT_CACHE_OBJECT_PUT,
+                        EventType.EVT_CACHE_OBJECT_REMOVED);
+
+                    // Generate cache events.
+                    for (int i = 0; i < 20; i++)
+                        cache.put(i, Integer.toString(i));
+                </pre>
+            </div>
+        </div>
+            
+        
+        <h2>GitHub Examples:</h2>
+        <p>
+            Also see <a href="https://github.com/apache/ignite/tree/master/examples/src/main/java/org/apache/ignite/examples/messaging" target="github">messaging examples</a>available on GitHub.
+        </p>
+            
+        
+			<h2>Messaging & Events Features</h2>
+            <table class="table table-bordered table-striped" name="Messaging Features">
                 <thead>
                     <tr>
                         <th width="35%" class="left">Feature</th>
@@ -249,11 +243,11 @@ under the License.
                 </tr>
                 </tbody>
             </table>
-        </section>
-    </main>
+        </div>
+        </article>			
 
     <!--#include virtual="/includes/footer.html" -->
-</div>
+
 <!--#include virtual="/includes/scripts.html" -->
 </body>
 </html>

Modified: ignite/site/branches/ignite-redisign/features/multilanguage.html
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/features/multilanguage.html?rev=1875105&r1=1875104&r2=1875105&view=diff
==============================================================================
Binary files - no diff available.

Modified: ignite/site/branches/ignite-redisign/features/rdbmsintegration.html
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/features/rdbmsintegration.html?rev=1875105&r1=1875104&r2=1875105&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/features/rdbmsintegration.html (original)
+++ ignite/site/branches/ignite-redisign/features/rdbmsintegration.html Wed Mar 11 22:11:46 2020
@@ -45,169 +45,156 @@ under the License.
     <!--#include virtual="/includes/sh.html" -->
 </head>
 <body>
-<div id="wrapper">
-    <!--#include virtual="/includes/header.html" -->
-
-    <main id="main" role="main" class="container">
-        <section id="rdbms" class="page-section">
-            <h1 class="first">Automatically Integrate with RDBMSs</h1>
-            <div class="col-sm-12 col-md-12 col-xs-12" style="padding:0 0 2px 0;">
-                <div class="col-sm-6 col-md-8 col-xs-12" style="padding-left:0; padding-right:0">
-
-                    <p>
-                        Ignite provides support for integrating with a variety of persistence stores.
-                        It allows you to connect to the database, import schemas, configure indexed types, and automatically generate all the
-                        required XML OR-mapping configuration and Java domain model POJOs that you can easily download and copy into your project.
-                    </p>
-                    <p>Ignite can integrate with any relational database (RDBMS) that supports a JDBC driver - Oracle, PostgreSQL, Microsoft SQL Server, and MySQL.</p>
-                    <div class="page-heading">RDBMS Integration Wizard</div>
-                    <p>Ignite supports automatic RDBMS integration via <a href="https://console.gridgain.com" target="_blank" rel="noopener">Ignite Web Console</a>
-                        which is an interactive configuration wizard, management and monitoring tool that allows you to:</p>
-                        <ul class="page-list">
-                            <li>Create and download various configurations for your Ignite cluster.</li>
-                            <li>Automatically construct Ignite's SQL metadata from any RDBMS schemas.</li>
-                            <li>Execute SQL queries over your in-memory caches.</li>
-                            <li>View query execution plans, in-memory schemas and streaming charts.</li>
-                        </ul>
-                </div>
-                <div class="col-sm-6 col-md-4 col-xs-12" style="padding-right:0">
-                    <a href="/images/domain-model.png"><img class="img-responsive" src="/images/domain-model.png" width="350" style="float:right;"/></a> &nbsp;
-                    <p class="img-caption">Click on the image to view full size.</p>
-                </div>
-            </div>
-            <p>Ignite Web Console is an innovative tool that offers plenty of rich functionalities to manage the Ignite cluster and is not limited to features mentioned above.</p>
-            <div class="code-examples">
-                <div class="page-heading">Example</div>
-                <p>Here is an example of automatically generated Person class, as well as Java and XML configurations, imported from a MySQL PERSON table via Ignite Web Console.</p>
-                <!-- Nav tabs -->
-                <ul id="web-console-example" class="nav nav-tabs">
-                    <li class="active"><a href="#example-person" aria-controls="home" data-toggle="tab">Person</a></li>
-                    <li><a href="#example-xml" aria-controls="profile" data-toggle="tab">XML</a></li>
-                    <li><a href="#example-java" aria-controls="profile" data-toggle="tab">Java</a></li>
-                </ul>
+<!--#include virtual="/includes/header.html" -->
+<article>
+    <div class="container">
+        <h1>Automatically Integrate with RDBMSs</h1>
+        
+        <a href="/images/domain-model.png"><img class="img-responsive diagram-right" src="/images/domain-model.png" /></a>
+        <p>
+            Ignite provides support for integrating with a variety of persistence stores.
+            It allows you to connect to the database, import schemas, configure indexed types, and automatically generate all the
+            required XML OR-mapping configuration and Java domain model POJOs that you can easily download and copy into your project.
+        </p>
+        <p>Ignite can integrate with any relational database (RDBMS) that supports a JDBC driver - Oracle, PostgreSQL, Microsoft SQL Server, and MySQL.</p>
+                    
+        <h2>RDBMS Integration Wizard</h2>
+        <p>Ignite supports automatic RDBMS integration via <a href="https://console.gridgain.com" target="_blank" rel="noopener">Ignite Web Console</a>
+            which is an interactive configuration wizard, management and monitoring tool that allows you to:</p>
+            <ul class="page-list">
+                <li>Create and download various configurations for your Ignite cluster.</li>
+                <li>Automatically construct Ignite's SQL metadata from any RDBMS schemas.</li>
+                <li>Execute SQL queries over your in-memory caches.</li>
+                <li>View query execution plans, in-memory schemas and streaming charts.</li>
+            </ul>
+                
+        <p>Ignite Web Console is an innovative tool that offers plenty of rich functionalities to manage the Ignite cluster and is not limited to features mentioned above.</p>
+                    
+        <h3>Example</h3>
+        <p>Here is an example of automatically generated Person class, as well as Java and XML configurations, imported from a MySQL PERSON table via Ignite Web Console.</p>
+        <!-- Nav tabs -->
+        <ul id="web-console-example" class="nav nav-tabs">
+            <li ><a class="active" href="#example-person" aria-controls="home" data-toggle="tab">Person</a></li>
+            <li><a href="#example-xml" aria-controls="profile" data-toggle="tab">XML</a></li>
+            <li><a href="#example-java" aria-controls="profile" data-toggle="tab">Java</a></li>
+        </ul>
 
                 <!-- Tab panes -->
-                <div class="tab-content">
-                    <div class="tab-pane" id="example-xml">
-                        <pre class="brush:xml">
-                            &lt;bean class="org.apache.ignite.configuration.IgniteConfiguration"&gt;
-                                ...
-                                &lt;property name="cacheStoreFactory"&gt;
-                                    &lt;bean class="org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory"&gt;
-                                        &lt;property name="dataSourceBean" value="dsMySQL"/&gt;
-                                        &lt;property name="dialect"&gt;
-                                            &lt;bean class="org.apache.ignite.cache.store.jdbc.dialect.MySQLDialect"/&gt;
-                                        &lt;/property&gt;
-                                        &lt;property name="types"&gt;
-                                            &lt;list&gt;
-                                                &lt;bean class="org.apache.ignite.cache.store.jdbc.JdbcType"&gt;
-                                                    &lt;property name="cacheName" value="PersonCache"/&gt;
-                                                    &lt;property name="keyType" value="java.lang.Integer"/&gt;
-                                                    &lt;property name="valueType" value="com.apache.ignite.myexample.model.Person"/&gt;
-                                                    &lt;property name="databaseSchema" value="test"/&gt;
-                                                    &lt;property name="databaseTable" value="person"/&gt;
-
-                                                    &lt;property name="keyFields"&gt;
-                                                        &lt;list&gt;
-                                                            ...
-                                                        &lt;/list&gt;
-                                                    &lt;/property&gt;
-
-                                                    &lt;property name="valueFields"&gt;
-                                                        &lt;list&gt;
-                                                            ...
-                                                        &lt;/list&gt;
-                                                    &lt;/property&gt;
-                                                &lt;/bean&gt;
-                                            &lt;/list&gt;
-                                        &lt;/property&gt;
-                                    &lt;/bean&gt;
+        <div class="tab-content">
+            <div class="tab-pane" id="example-xml">
+                <pre class="brush:xml">
+                    &lt;bean class="org.apache.ignite.configuration.IgniteConfiguration"&gt;
+                        ...
+                        &lt;property name="cacheStoreFactory"&gt;
+                            &lt;bean class="org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory"&gt;
+                                &lt;property name="dataSourceBean" value="dsMySQL"/&gt;
+                                &lt;property name="dialect"&gt;
+                                    &lt;bean class="org.apache.ignite.cache.store.jdbc.dialect.MySQLDialect"/&gt;
+                                &lt;/property&gt;
+                                &lt;property name="types"&gt;
+                                    &lt;list&gt;
+                                        &lt;bean class="org.apache.ignite.cache.store.jdbc.JdbcType"&gt;
+                                            &lt;property name="cacheName" value="PersonCache"/&gt;
+                                            &lt;property name="keyType" value="java.lang.Integer"/&gt;
+                                            &lt;property name="valueType" value="com.apache.ignite.myexample.model.Person"/&gt;
+                                            &lt;property name="databaseSchema" value="test"/&gt;
+                                            &lt;property name="databaseTable" value="person"/&gt;
+
+                                            &lt;property name="keyFields"&gt;
+                                                &lt;list&gt;
+                                                    ...
+                                                &lt;/list&gt;
+                                            &lt;/property&gt;
+
+                                            &lt;property name="valueFields"&gt;
+                                                &lt;list&gt;
+                                                    ...
+                                                &lt;/list&gt;
+                                            &lt;/property&gt;
+                                        &lt;/bean&gt;
+                                    &lt;/list&gt;
                                 &lt;/property&gt;
-                                ...
                             &lt;/bean&gt;
-                        </pre>
-                    </div>
-                    <div class="tab-pane" id="example-java">
-                        <pre class="brush:java">
-                        /**
-                         * This configuration was generated by GridGain Web Console (10/26/2016 11:12)
-                         */
-                        public class ClientConfigurationFactory {
-                            private static final Properties props = new Properties();
-
-                            static {
-                                try (InputStream in = IgniteConfiguration.class.getClassLoader().getResourceAsStream("secret.properties")) {
-                                    props.load(in);
-                                }
-                                catch (Exception ignored) {
-                                    // No-op.
-                                }
-                            }
-
-                            /** Helper class for datasource creation. */
-                            public static class DataSources {
-                                public static final MysqlDataSource INSTANCE_dsMySQL = createdsMySQL();
-
-                                private static MysqlDataSource createdsMySQL() {
-                                    MysqlDataSource dataSource = new MysqlDataSource();
-
-                                    dataSource.setURL(props.getProperty("dsMySQL.jdbc.url"));
-                                    dataSource.setUser(props.getProperty("dsMySQL.jdbc.username"));
-                                    dataSource.setPassword(props.getProperty("dsMySQL.jdbc.password"));
-
-                                    return dataSource;
-                                }
-                            }
-                            ...
-                        }
-                        </pre>
-                    </div>
-                    <div class="tab-pane  active" id="example-person">
-                        <pre class="brush:java">
-                            /**
-                             * Person definition.
-                             *
-                             * This POJO was generated by GridGain Web Console (10/26/2016 11:12)
-                             */
-                            public class Person implements Serializable {
-                                /** */
-                                private static final long serialVersionUID = 0L;
-
-                                /** Value for id. */
-                                private int id;
-
-                                /** Value for orgid. */
-                                private Integer orgid;
-
-                                /** Value for name. */
-                                private String name;
-
-                                /** Value for salary. */
-                                private Integer salary;
-
-                                ...
-                            }
-                        </pre>
-                    </div>
-                </div>
+                        &lt;/property&gt;
+                        ...
+                    &lt;/bean&gt;
+                </pre>
             </div>
+            <div class="tab-pane" id="example-java">
+                <pre class="brush:java">
+                /**
+                    * This configuration was generated by GridGain Web Console (10/26/2016 11:12)
+                    */
+                public class ClientConfigurationFactory {
+                    private static final Properties props = new Properties();
+
+                    static {
+                        try (InputStream in = IgniteConfiguration.class.getClassLoader().getResourceAsStream("secret.properties")) {
+                            props.load(in);
+                        }
+                        catch (Exception ignored) {
+                            // No-op.
+                        }
+                    }
 
-            <p>
-                <div class="page-heading">Hosted Management</div>
-                Visit our <a href="/addons.html" target="_blank" rel="noopener">Manage</a> page to learn more about the projects that intend to make user experience with Ignite easier.
-            </p>
+                    /** Helper class for datasource creation. */
+                    public static class DataSources {
+                        public static final MysqlDataSource INSTANCE_dsMySQL = createdsMySQL();
 
+                        private static MysqlDataSource createdsMySQL() {
+                            MysqlDataSource dataSource = new MysqlDataSource();
+
+                            dataSource.setURL(props.getProperty("dsMySQL.jdbc.url"));
+                            dataSource.setUser(props.getProperty("dsMySQL.jdbc.username"));
+                            dataSource.setPassword(props.getProperty("dsMySQL.jdbc.password"));
+
+                            return dataSource;
+                        }
+                    }
+                    ...
+                }
+                </pre>
+            </div>
+            <div class="tab-pane  active" id="example-person">
+                <pre class="brush:java">
+                    /**
+                        * Person definition.
+                        *
+                        * This POJO was generated by GridGain Web Console (10/26/2016 11:12)
+                        */
+                    public class Person implements Serializable {
+                        /** */
+                        private static final long serialVersionUID = 0L;
+
+                        /** Value for id. */
+                        private int id;
+
+                        /** Value for orgid. */
+                        private Integer orgid;
+
+                        /** Value for name. */
+                        private String name;
+
+                        /** Value for salary. */
+                        private Integer salary;
+
+                        ...
+                    }
+                </pre>
+            </div>
+        </div>
+            
+        
+        <h2>Hosted Management</h2>
+        <p>Visit our <a href="/addons.html" target="_blank" rel="noopener">Manage</a> page to learn more about the projects that intend to make user experience with Ignite easier.</p>
             <p>
                 <a href="https://apacheignite-tools.readme.io/docs" target="_blank" rel="noopener">
                     <b>Get started with Ignite Web Console <i class="fa fa-angle-double-right"></i></b>
                 </a>
             </p>
-
-        </section>
-    </main>
-
-    <!--#include virtual="/includes/footer.html" -->
-</div>
+    </div>
+</article>
+<!--#include virtual="/includes/footer.html" -->
 <!--#include virtual="/includes/scripts.html" -->
 </body>
 </html>

Modified: ignite/site/branches/ignite-redisign/features/servicegrid.html
URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-redisign/features/servicegrid.html?rev=1875105&r1=1875104&r2=1875105&view=diff
==============================================================================
--- ignite/site/branches/ignite-redisign/features/servicegrid.html (original)
+++ ignite/site/branches/ignite-redisign/features/servicegrid.html Wed Mar 11 22:11:46 2020
@@ -45,155 +45,148 @@ under the License.
     <!--#include virtual="/includes/sh.html" -->
 </head>
 <body>
-<div id="wrapper">
-    <!--#include virtual="/includes/header.html" -->
-
-    <main id="main" role="main" class="container">
-        <section id="servicegrid" class="page-section">
-            <h1 class="first">Deploy User-Defined Services</h1>
-            <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">
+<!--#include virtual="/includes/header.html" -->
+<article>
+<div class="container">
+     
+    <h1 >Deploy User-Defined <strong>Services</strong></h1>
+            
+    <img class="diagram-right img-responsive" src="/images/ignite_service_grid_v1.png" style="max-width: 35%;" />
+    <p>
+        Ignite Service Grid allows for deployments of arbitrary user-defined services on the cluster.
+        You can implement and deploy any service, such as custom counters, ID generators,
+        hierarchical maps, etc.
+    </p>
+    <p>
+        The main use case of the service grid is ability to deploy various types of
+        <b>singleton services in the cluster</b>. However, in case if you need multiple instances
+        of a service, Ignite will also ensure proper deployment and fault tolerance of all
+        service instances.
+    </p>
+        
+                    
+    <h2>Code Examples:</h2>
+    <!-- Nav tabs -->
+    <ul id="service-examples" class="nav nav-tabs">
+        <li><a href="#service-define" aria-controls="home" data-toggle="tab" class="active">Service Definition</a></li>
+        <li><a href="#service-deploy" aria-controls="home" data-toggle="tab">Service Deployment</a></li>
+    </ul>
+
+    <!-- Tab panes -->
+    <div class="tab-content">
+        <div class="tab-pane active" id="service-define">
+            <pre class="brush:java">
+                // Simple service implementation.
+                public class MyIgniteService implements Service {
+                    // Example of ignite resource injection. All resources are optional.
+                    // You should inject resources only as needed.
+                    @IgniteInstanceResource
+                    private Ignite ignite;
+                    ...
+
+                    @Override public void cancel(ServiceContext ctx) {
+                        // No-op.
+                    }
+
+                    @Override public void execute(ServiceContext ctx) {
+                        // Loop until service is cancelled.
+                        while (!ctx.isCancelled()) {
+                            // Do something.
+                            ...
+                        }
+                    }
+                }
+            </pre>
+        </div>
+        <div class="tab-pane" id="service-deploy">
+            <pre class="brush:java">
+                Ignite ignite = Ignition.ignite();
+
+                IgniteServices svcs = ignite.services();
+
+                // Deploy cluster-singleton service.
+                svcs.deployClusterSingleton("myClusterSingleton", new MyIgniteService());
+            </pre>
+        </div>
+    </div>
+           
+    
+    <h2>GitHub Examples:</h2>
+    <p>
+        Also see <a href="https://github.com/apache/ignite/tree/master/examples/src/main/java/org/apache/ignite/examples/servicegrid" target="github">service grid examples</a> available on GitHub.
+    </p>
+        
+    <h2>Service Grid Features</h2>
+    <table class="table table-bordered table-striped" name="Service Grid Features">
+        <thead>
+            <tr>
+                <th width="35%" class="left">Feature</th>
+                <th>Description</th>
+            </tr>
+        </thead>
+        <tbody>
+            <tr>
+                <td class="left">User-Defined Services</td>
+                <td>
                     <p>
-                        Ignite Service Grid allows for deployments of arbitrary user-defined services on the cluster.
-                        You can implement and deploy any service, such as custom counters, ID generators,
-                        hierarchical maps, etc.
+                        Users can define their own services and Ignite will automatically distribute
+                        these services over the cluster. For example, you can create your own specialized
+                        distributed counters, or a custom data loading service, or any other logic, and
+                        deploy it onto the cluster.
                     </p>
+                    <div class="page-links">
+                        <a href="http://apacheignite.readme.io/docs/service-grid" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a>
+                    </div>
+                </td>
+            </tr>
+            <tr>
+                <td class="left">Cluster Singletons</td>
+                <td>
                     <p>
-                        The main use case of the service grid is ability to deploy various types of
-                        <b>singleton services in the cluster</b>. However, in case if you need multiple instances
-                        of a service, Ignite will also ensure proper deployment and fault tolerance of all
-                        service instances.
+                        Ignite allows to deploy any number of services on any of the grid nodes. However,
+                        the most commonly used feature is to deploy singleton services on the cluster.
+                        Ignite will manage the singleton contract regardless of topology changes and
+                        node crashes.
                     </p>
-                </div>
-
-                <div class="col-sm-6 col-md-6 col-xs-12" style="padding-right:0">
-                    <img class="img-responsive" src="/images/ignite_service_grid_v1.png" width="380px" style="float:right;"/>
-                </div>
-            </div>
-            <div class="code-examples">
-                <div class="page-heading">Code Examples:</div>
-                <!-- Nav tabs -->
-                <ul id="service-examples" class="nav nav-tabs">
-                    <li class="active"><a href="#service-define" aria-controls="home" data-toggle="tab">Service Definition</a></li>
-                    <li><a href="#service-deploy" aria-controls="home" data-toggle="tab">Service Deployment</a></li>
-                </ul>
-
-                <!-- Tab panes -->
-                <div class="tab-content">
-                    <div class="tab-pane active" id="service-define">
-                        <pre class="brush:java">
-                            // Simple service implementation.
-                            public class MyIgniteService implements Service {
-                                // Example of ignite resource injection. All resources are optional.
-                                // You should inject resources only as needed.
-                                @IgniteInstanceResource
-                                private Ignite ignite;
-                                ...
-
-                                @Override public void cancel(ServiceContext ctx) {
-                                    // No-op.
-                                }
-
-                                @Override public void execute(ServiceContext ctx) {
-                                    // Loop until service is cancelled.
-                                    while (!ctx.isCancelled()) {
-                                        // Do something.
-                                        ...
-                                    }
-                                }
-                            }
-                        </pre>
+                    <div class="page-links">
+                        <a href="http://apacheignite.readme.io/docs/cluster-singletons" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a>
                     </div>
-                    <div class="tab-pane" id="service-deploy">
-                        <pre class="brush:java">
-                            Ignite ignite = Ignition.ignite();
-
-                            IgniteServices svcs = ignite.services();
-
-                            // Deploy cluster-singleton service.
-                            svcs.deployClusterSingleton("myClusterSingleton", new MyIgniteService());
-                        </pre>
+                </td>
+            </tr>
+            <tr>
+                <td class="left">Fault Tolerance</td>
+                <td>
+                    <p>
+                        Ignite always guarantees that services are continuously available, and are deployed
+                        according to the specified configuration, regardless of any topology changes or
+                        node crashes.
+                    </p>
+                    <div class="page-links">
+                        <a href="http://apacheignite.readme.io/docs/service-grid#load-balancing" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a>
                     </div>
-                </div>
-            </div>
-            <div class="page-heading">GitHub Examples:</div>
-            <p>
-                Also see <a href="https://github.com/apache/ignite/tree/master/examples/src/main/java/org/apache/ignite/examples/servicegrid" target="github">service grid examples</a>
-                available on GitHub.
-            </p>
-        </section>
-        <section id="key-features" class="page-section">
-            <h2>Service Grid Features</h2>
-            <table class="formatted" name="Service Grid Features">
-                <thead>
-                    <tr>
-                        <th width="35%" class="left">Feature</th>
-                        <th>Description</th>
-                    </tr>
-                </thead>
-                <tbody>
-                    <tr>
-                        <td class="left">User-Defined Services</td>
-                        <td>
-                            <p>
-                                Users can define their own services and Ignite will automatically distribute
-                                these services over the cluster. For example, you can create your own specialized
-                                distributed counters, or a custom data loading service, or any other logic, and
-                                deploy it onto the cluster.
-                            </p>
-                            <div class="page-links">
-                                <a href="http://apacheignite.readme.io/docs/service-grid" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a>
-                            </div>
-                        </td>
-                    </tr>
-                    <tr>
-                        <td class="left">Cluster Singletons</td>
-                        <td>
-                            <p>
-                                Ignite allows to deploy any number of services on any of the grid nodes. However,
-                                the most commonly used feature is to deploy singleton services on the cluster.
-                                Ignite will manage the singleton contract regardless of topology changes and
-                                node crashes.
-                            </p>
-                            <div class="page-links">
-                                <a href="http://apacheignite.readme.io/docs/cluster-singletons" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a>
-                            </div>
-                        </td>
-                    </tr>
-                    <tr>
-                        <td class="left">Fault Tolerance</td>
-                        <td>
-                            <p>
-                                Ignite always guarantees that services are continuously available, and are deployed
-                                according to the specified configuration, regardless of any topology changes or
-                                node crashes.
-                            </p>
-                            <div class="page-links">
-                                <a href="http://apacheignite.readme.io/docs/service-grid#load-balancing" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a>
-                            </div>
-                        </td>
-                    </tr>
-                    <tr>
-                        <td class="left">Load Balancing</td>
-                        <td>
-                            <p>
-                                In all cases, other than singleton service deployment, Ignite will automatically make
-                                sure that about an equal number of services are deployed on each node within the
-                                cluster. Whenever cluster topology changes, Ignite will re-evaluate service
-                                deployments and may re-deploy an already deployed service on another node for better
-                                load balancing.
-                            </p>
-                            <div class="page-links">
-                                <a href="http://apacheignite.readme.io/docs/service-grid#load-balancing" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a>
-                            </div>
-                        </td>
-                    </tr>
-                </tbody>
-            </table>
-        </section>
-    </main>
-
-    <!--#include virtual="/includes/footer.html" -->
+                </td>
+            </tr>
+            <tr>
+                <td class="left">Load Balancing</td>
+                <td>
+                    <p>
+                        In all cases, other than singleton service deployment, Ignite will automatically make
+                        sure that about an equal number of services are deployed on each node within the
+                        cluster. Whenever cluster topology changes, Ignite will re-evaluate service
+                        deployments and may re-deploy an already deployed service on another node for better
+                        load balancing.
+                    </p>
+                    <div class="page-links">
+                        <a href="http://apacheignite.readme.io/docs/service-grid#load-balancing" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a>
+                    </div>
+                </td>
+            </tr>
+        </tbody>
+    </table>			 	
+
+    </div>
+</article>
+<!--#include virtual="/includes/footer.html" -->
 </div>
 <!--#include virtual="/includes/scripts.html" -->
 </body>