merging edited versions of the hpc and key-value store pages

git-svn-id: https://svn.apache.org/repos/asf/ignite/site/branches/ignite-redisign@1874534 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/use-cases/hpc.html b/use-cases/hpc.html
index f08c66a..42ea2f6 100644
--- a/use-cases/hpc.html
+++ b/use-cases/hpc.html
@@ -68,8 +68,8 @@
                         nodes.
                     </p>
                     <p>
-                        Ignite enables speed and scale for HPC scenarios by processing records in memory with the
-                        elimination of data shuffling and network utilization.
+                        Ignite enables speed and scale for HPC scenarios by processing records in memory and reducing
+                        data shuffling and network utilization.
                     </p>
                 </div>
 
@@ -83,39 +83,33 @@
             <div class="page-heading">Co-located Processing</div>
             <p>
                 Ignite uses the notion of co-located processing to guide HPC workloads implementations in distributed
-                in-memory environments. The primary aim of this type of processing is to increase the performance of
-                your complex calculations by running them straight on the Ignite cluster nodes. In such a case, the
-                calculations process only local data sets of the cluster nodes, thus, avoiding records shuffling over
-                the network. It results in minimal network utilization, and an order of magnitude performance increase
-                depending on the data volume.
+                in-memory environments. Co-located processing increases the performance of your complex calculations by
+                running them straight on the Ignite cluster nodes. These calculations are done only on local data sets
+                available on the nodes, thus avoiding data shuffling over the network and resulting in orders of magnitude
+                increase in performance.
             </p>
 
             <p>
                 To exploit the co-located processing in practice, first, you need to co-locate data by storing related
-                records on the same cluster node. Consider your bank account and transactions posted to it as an example
-                of related or co-located data. Once you set <code>accountID</code> as an affinity
-                key for <code>Transactions</code> table, then you'll instruct Ignite to store all the transactions with
-                the same <code>accountId</code> on a single cluster node that keeps the record of your account in
-                <code>Accounts</code> table.
-            </p>
-
-            <p>
-                As soon as data is co-located, Ignite can execute compute- and data-intensive logic on the cluster nodes
-                that store the records required for the calculation. For instance, a payment processing system can send
-                a compute task for previous transactions verification to a specific Ignite node that stores your account
-                record with all completed transactions and finish fraud-detection verifications locally on that machine.
-                Thus, instead of pulling all the transactions back to the application over the network, the processing
-                system eliminates network utilization by running verifications on the nodes that store actual data.
-                The effect is even more significant when the system needs to process millions of transactions per second,
-                verifying billions of previously completed payments.
+                records on the same cluster node. As an example of related or co-located data, consider your bank account
+                and transactions posted to it. Once you set <code>accountID</code> as an affinity key for the
+                <code>Transactions</code> table, you'll instruct Ignite to store all transactions for your
+                <code>accountId</code> on the same node that keeps the record of your account in the
+                <code>Accounts</code> table. Now let's say a payment processing system sends a compute task that
+                verifies previous transactions of your account. Since the data is co-located, Ignite will execute this
+                task directly on the node that stores your account record with all completed transactions and finish the
+                verification locally on that machine instead of pulling all the transactions back to the application
+                over the network. This method of executing a task on the node where the data resides provides
+                exceptionally high performance.The effect is even more significant when the system needs to process
+                millions of transactions per second, verifying billions of previously completed payments.
             </p>
 
             <div class="page-heading">Compute APIs</div>
 
             <p>
-                Ignite provides compute APIs (also known as compute grid) for creation and scheduling custom
-                tasks of arbitrary complexity. The APIs implement MapReduce paradigm and presently available for Java,
-                C# and C++ programming languages.
+                Ignite provides compute APIs (also known as compute grid) for creating and scheduling custom
+                tasks of arbitrary complexity. The APIs implement MapReduce paradigm and are presently available for Java,
+                C#, and C++.
             </p>
 
             <div class="page-heading">Learn More</div>
diff --git a/use-cases/key-value-store.html b/use-cases/key-value-store.html
index a12973d..ce9c71d 100644
--- a/use-cases/key-value-store.html
+++ b/use-cases/key-value-store.html
@@ -39,7 +39,7 @@
 
     <meta name="description"
           content="Apache Ignite operates as a distributed key-value store that stores data both in memory and on disk
-          with support of key-value, SQL, ACID transactions, compute and machine learning APIs."/>
+          with support for key-value, SQL, ACID transactions, compute, and machine learning APIs."/>
 
     <title>Distributed Key-Value Store - Apache Ignite</title>
 
@@ -58,7 +58,7 @@
                 <div class="col-sm-6 col-md-6 col-xs-12" style="padding-left:0; padding-right:0">
                     <p>
                         Apache Ignite can operate as a distributed key-value store that stores data both in memory
-                        and on disk. In this deployment mode, you can think of Ignite as of a distributed partitioned
+                        and on disk. In this deployment mode, you can think of Ignite as a distributed partitioned
                         hash map with every cluster node owning a portion of the overall data set. As with
                         standard key-value stores, you can access the cluster with key-value requests or take
                         advantage of APIs available exclusively in Ignite - distributed ACID transactions, SQL,
@@ -85,7 +85,7 @@
             <p>
                 In addition to that, Ignite extends JCache specification supporting distributed key-value ACID
                 transactions, scan and continuous queries, co-located computations, and much more. For instance,
-                continuous queries are handy for cases when you want an application to be notified whenever any record
+                continuous queries are handy for cases where you want an application to be notified whenever a record
                 gets updated on the server nodes. While ACID transactions let you update a set of records stored in
                 different caches/tables consistently.
             </p>
@@ -95,10 +95,10 @@
             <p>
                 Near cache is a local client-side cache that stores the most frequently used data on the application end.
                 This caching technique is supported for key-value APIs only and can be considered for applications that
-                require a consistent response time withing a low microseconds range. The near cache is invalidated and
-                updated by Ignite automatically. Whenever a primary copy of a record gets updated on a server node,
-                the change will be propogated to all the nodes that store its backup copy as well as to your applications
-                that keep a record's copy in their near caches.
+                require a consistent response time ranging in microseconds. Ignite automatically invalidates and
+                updates the near cache. Whenever the primary copy of a record gets updated on a server node, Ignite
+                propagates the change to all the nodes that store the record's backup copy as well as to your
+                applications that keep the record's copy in their near caches.
             </p>
 
             <div class="page-heading">Read-through and Write-Through/Behind</div>
@@ -111,7 +111,7 @@
             </p>
 
             <p>
-                The read-through capability implies that Ignite can read data from an external database if a record is
+                The read-through capability means that Ignite can read data from an external database if a record is
                 missing in memory. This feature is fully supported for both JCache and extended key-value APIs.
             </p>
 
@@ -119,12 +119,11 @@
 
             <p>
                 If you want Ignite to function as a key-value store that caches data in memory and persists it to
-                disk, then, alternatively to an external database, you can enable Ignite native persistence. Ignite
-                persistence lets eliminate time-consuming data reloading phase from external databases as well as a
-                cache warm-up step. Furthermore, since the native persistence always keeps a full copy of data on disk,
-                you are free to cache a subset of records in memory. If Ignite finds that a record is missing in memory,
-                then it will read it from disk automatically
-                regardless of the API you use.
+                disk instead of an external database, then you can enable Ignite native persistence. Ignite
+                persistence lets you eliminate the time-consuming cache warm-up step as well as the data reloading phase
+                from external databases. Furthermore, since the native persistence always keeps a full copy of data on disk,
+                you are free to cache a subset of records in memory. If a required data record is missing in memory,
+                then Ignite reads it from the disk automatically regardless of the API you use.
             </p>
 
             <div class="page-heading">Learn More</div>