Author: dmagda Date: Fri Feb 9 18:45:46 2018 New Revision: 1823688 URL: http://svn.apache.org/viewvc?rev=1823688&view=rev Log: reworked key-value apis page
Added: ignite/site/branches/ignite-7061/features/key-value-store.html - copied, changed from r1823687, ignite/site/branches/ignite-7061/use-cases/database/key-value-store.html ignite/site/branches/ignite-7061/use-cases/database/datagrid.html - copied, changed from r1823687, ignite/site/branches/ignite-7061/features/datagrid.html Removed: ignite/site/branches/ignite-7061/features/datagrid.html ignite/site/branches/ignite-7061/use-cases/database/key-value-store.html Modified: ignite/site/branches/ignite-7061/.htaccess ignite/site/branches/ignite-7061/arch/clustering.html ignite/site/branches/ignite-7061/arch/memorycentric.html ignite/site/branches/ignite-7061/download.html ignite/site/branches/ignite-7061/features.html ignite/site/branches/ignite-7061/features/datastructures.html ignite/site/branches/ignite-7061/features/sql.html ignite/site/branches/ignite-7061/features/transactions.html ignite/site/branches/ignite-7061/includes/header.html ignite/site/branches/ignite-7061/index.html ignite/site/branches/ignite-7061/sitemap.xml ignite/site/branches/ignite-7061/use-cases/caching/database-caching.html ignite/site/branches/ignite-7061/use-cases/caching/jcache-provider.html ignite/site/branches/ignite-7061/use-cases/comparison/ignite-for-nosql.html ignite/site/branches/ignite-7061/use-cases/comparison/ignite-for-rdbms.html ignite/site/branches/ignite-7061/use-cases/database/distributed-database.html ignite/site/branches/ignite-7061/use-cases/database/in-memory-database.html ignite/site/branches/ignite-7061/usecases.html ignite/site/branches/ignite-7061/whatisignite-bk.html ignite/site/branches/ignite-7061/whatisignite.html Modified: ignite/site/branches/ignite-7061/.htaccess URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/.htaccess?rev=1823688&r1=1823687&r2=1823688&view=diff ============================================================================== --- ignite/site/branches/ignite-7061/.htaccess (original) +++ ignite/site/branches/ignite-7061/.htaccess Fri Feb 9 18:45:46 2018 @@ -11,6 +11,8 @@ Redirect 301 /features/durablememory.htm Redirect 301 memorycentric.html /arch/memorycentric.html Redirect 301 /features/persistence.html /arch/persistence.html Redirect 301 /features/deploy.html /arch/clustering.html +Redirect 301 /use-cases/database/key-value-store.html /features/key-value-store.html +Redirect 301 /features/datagrid.html /use-cases/database/datagrid.html RewriteEngine On Modified: ignite/site/branches/ignite-7061/arch/clustering.html URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/arch/clustering.html?rev=1823688&r1=1823687&r2=1823688&view=diff ============================================================================== --- ignite/site/branches/ignite-7061/arch/clustering.html (original) +++ ignite/site/branches/ignite-7061/arch/clustering.html Fri Feb 9 18:45:46 2018 @@ -143,6 +143,19 @@ under the License. </td> </tr> <tr> + <td class="left">Self-Healing Cluster</td> + <td> + <p> + Ignite cluster can self-heal, where clients automatically reconnect in case of failures, + slow clients are automatically kicked out, and data from failed nodes + is automatically propagated to other nodes in the grid: + </p> + <div class="page-links"> + <a href="http://apacheignite.readme.io/docs/clients-vs-servers" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> <td class="left">Cross-platform Support</td> <td> <p> Modified: ignite/site/branches/ignite-7061/arch/memorycentric.html URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/arch/memorycentric.html?rev=1823688&r1=1823687&r2=1823688&view=diff ============================================================================== --- ignite/site/branches/ignite-7061/arch/memorycentric.html (original) +++ ignite/site/branches/ignite-7061/arch/memorycentric.html Fri Feb 9 18:45:46 2018 @@ -176,6 +176,20 @@ under the License. </td> </tr> <tr> + <td class="left">Partitioning & Replication</td> + <td> + <p> + Depending on the configuration, Ignite can either <i>partition</i> or <i>replicate</i> + data. Unlike <code>REPLICATED</code> mode, where data is fully replicated across + all nodes in the cluster, in <code>PARTITIONED</code> mode Ignite will equally split the data + across multiple cluster nodes. + </p> + <div class="page-links"> + <a href="http://apacheignite.readme.io/docs/cache-modes" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> <td class="left">Distributed Database</td> <td> <p> @@ -207,7 +221,7 @@ under the License. and therefore is able to store more data than can fit in physical memory: </p> <div class="page-links"> - <a href="/features/datagrid.html">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + <a href="/use-cases/database/datagrid.html">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> </div> </td> </tr> Modified: ignite/site/branches/ignite-7061/download.html URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/download.html?rev=1823688&r1=1823687&r2=1823688&view=diff ============================================================================== --- ignite/site/branches/ignite-7061/download.html (original) +++ ignite/site/branches/ignite-7061/download.html Fri Feb 9 18:45:46 2018 @@ -131,7 +131,7 @@ under the License. <li><a href="/arch/durablememory.html">Durable Memory</a></li> <li><a href="/arch/persistence.html">Native Persistence</a></li> <li><a href="/features/sql.html">SQL Database</a></li> - <li><a href="/features/datagrid.html">Data Grid</a></li> + <li><a href="/use-cases/database/datagrid.html">Data Grid</a></li> <li><a href="/features/computegrid.html">Compute Grid</a></li> <li><a href="/features/streaming.html">Streaming</a></li> <li><a href="/features/machinelearning.html">Machine Learning<sup>βeta</sup></a></li> @@ -165,7 +165,7 @@ under the License. <li><a href="/arch/durablememory.html">Durable Memory</a></li> <li><a href="/arch/persistence.html">Native Persistence</a></li> <li><a href="/features/sql.html">SQL Database</a></li> - <li><a href="/features/datagrid.html">Data Grid</a></li> + <li><a href="/use-cases/database/datagrid.html">Data Grid</a></li> <li><a href="/features/computegrid.html">Compute Grid</a></li> <li><a href="/features/streaming.html">Streaming</a></li> <li><a href="/features/machinelearning.html">Machine Learning<sup>βeta</sup></a></li> @@ -198,7 +198,7 @@ under the License. <li><a href="/use-cases/database/distributed-database.html">Distributed Database</a></li> <li><a href="/use-cases/database/in-memory-database.html">In-Memory Database</a></li> <!--<li><a href="/use-cases/database/sql-database.html">SQL Database</a></li>--> - <li><a href="/use-cases/database/key-value-store.html">Key-Value Store</a></li> + <li><a href="/features/key-value-store.html">Key-Value Store</a></li> <li class="divider"> <li role="presentation" class="submenu-header">Comparison</li> <li><a href="/use-cases/comparison/ignite-for-nosql.html">Ignite for NoSQL Users</a></li> Modified: ignite/site/branches/ignite-7061/features.html URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/features.html?rev=1823688&r1=1823687&r2=1823688&view=diff ============================================================================== --- ignite/site/branches/ignite-7061/features.html (original) +++ ignite/site/branches/ignite-7061/features.html Fri Feb 9 18:45:46 2018 @@ -62,7 +62,7 @@ under the License. <li><a href="/arch/durablememory.html">Durable Memory</a></li> <li><a href="/arch/persistence.html">Persistence</a></li> <li><a href="/features/sql.html">Distributed SQL</a></li> - <li><a href="/features/datagrid.html">Data Grid</a></li> + <li><a href="/use-cases/database/datagrid.html">Data Grid</a></li> <li><a href="/features/computegrid.html">Compute Grid</a></li> <li><a href="/features/machinelearning.html">Machine Learning<sup>βeta</sup></a></li> </ul> @@ -376,7 +376,7 @@ under the License. </tbody> </table> </section> - <h2><a class="feature-header" href="/features/datagrid.html" target="_blank">Data Grid <i class="fa fa-external-link" style="padding-left:5px;"></i></a></h2> + <h2><a class="feature-header" href="/use-cases/database/datagrid.html" target="_blank">Data Grid <i class="fa fa-external-link" style="padding-left:5px;"></i></a></h2> <table class="formatted features" name="distributed caching"> <thead> Modified: ignite/site/branches/ignite-7061/features/datastructures.html URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/features/datastructures.html?rev=1823688&r1=1823687&r2=1823688&view=diff ============================================================================== --- ignite/site/branches/ignite-7061/features/datastructures.html (original) +++ ignite/site/branches/ignite-7061/features/datastructures.html Fri Feb 9 18:45:46 2018 @@ -63,7 +63,7 @@ under the License. <p> <div class="page-heading">Supported Data Structures:</div> <ul class="page-list"> - <li><a href="datagrid.html">Concurrent Map (Cache)</a></li> + <li><a href="/use-cases/database/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> Copied: ignite/site/branches/ignite-7061/features/key-value-store.html (from r1823687, ignite/site/branches/ignite-7061/use-cases/database/key-value-store.html) URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/features/key-value-store.html?p2=ignite/site/branches/ignite-7061/features/key-value-store.html&p1=ignite/site/branches/ignite-7061/use-cases/database/key-value-store.html&r1=1823687&r2=1823688&rev=1823688&view=diff ============================================================================== --- ignite/site/branches/ignite-7061/use-cases/database/key-value-store.html (original) +++ ignite/site/branches/ignite-7061/features/key-value-store.html Fri Feb 9 18:45:46 2018 @@ -33,7 +33,7 @@ under the License. <!DOCTYPE html> <html> <head> - <link rel="canonical" href="https://ignite.apache.org/use-cases/database/key-value-store.html"/> + <link rel="canonical" href="https://ignite.apache.org/features/key-value-store.html"/> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Key-Value Store - Apache Ignite</title> @@ -51,20 +51,16 @@ under the License. <main id="main" role="main" class="container"> <section id="key-value-store" class="page-section"> - <h1 class="first">Key-Value Store</h1> + <h1 class="first">Ignite as Key-Value Store</h1> <div class="col-sm-12 col-md-12 col-xs-12" style="padding:0 0 10px 0;"> <div class="col-sm-6 col-md-6 col-xs-12" style="padding-left:0; padding-right:0"> <p> - Ignite comes with a powerful a <strong>Key-Value Store</strong> - (a.k.a. <strong>Key-Value Database</strong>). It is a part of <nobr><i><a href="/features/datagrid.html">Ignite data grid</a></i></nobr> - component and can be viewed as a distributed - partitioned hash map with every cluster node owning a portion of the overall data set. - </p> - <p> - Ignite key-value store complies with - <i><a href="/use-cases/caching/jcache-provider.html">JCache (JSR 107)</a></i> specification and - provides - distributed ACID transactions, scan and continuous queries, collocated processing and more. + Ignite can be accessed with simple key-value APIs and, thus, act as a distributed key-value store + (aka. <a href="/use-cases/database/datagrid.html">data grid</a>). In this scenario, you can think of Ignite as of a distributed partitioned + hash map with every cluster node owning a portion of the overall data set. It's worth mentioning, + that even if you see or use Ignite as a key-value store, you're not limited to the key-value operations + and can always leverage from other available APIs such as SQL, collocated computations, machine + learning, streaming. </p> </div> <div class="col-sm-6 col-md- col-xs-12" style="padding-right:0"> @@ -72,44 +68,349 @@ under the License. </div> </div> - <div class="page-heading">Partitioning & Replication</div> + <div class="page-heading">JCache APIs</div> <p> - Depending on the configuration, Ignite can either partition or replicate data. - Unlike <code>REPLICATED</code> mode, where data is fully replicated across all nodes - in the cluster, in <code>PARTITIONED</code> mode Ignite will equally split the data across - multiple cluster nodes, allowing for storing TBs of data both in memory and on disk. + Ignite key-value APIs comply with <a href="/use-cases/caching/jcache-provider.html">JCache (JSR 107)</a> + specification that supports the following: </p> + <ul class="page-list"> + <li>In-Memory Key Value Store</li> + <li>Basic Cache Operations</li> + <li>ConcurrentMap APIs</li> + <li>Collocated Processing (EntryProcessor)</li> + <li>Events and Metrics</li> + <li>Pluggable Persistence</li> + </ul> - <div class="page-heading">Redundancy</div> + <div class="page-heading">Extended Key-Value APIs</div> <p> - Ignite also allows to configure multiple <b>backup copies</b> to guarantee data resiliency - in case of failures. - </p> - <div class="page-heading">Consistency</div> - <p> - Regardless of which replication scheme is used, Ignite guarantees data consistency across - all cluster members. - </p> - <div class="page-heading">Performance and Durability</div> - <p> - Data can be stored both in RAM and, optionally, on disk if - <i><a href="/arch/persistence.html">Ignite native persistence</a></i> is enabled. - </p> - <!--<div class="page-heading">External Databases</div>--> - <p> - Ignite also can automatically utilize 3rd party databases as storage, including integration with - most RDBMS, NoSQL or Hadoop systems. - </p> - <div class="page-heading">Data Locality</div> - <p> - Unlike other key-value databases, Ignite determines data locality using a pluggable hashing algorithm. - Every client can determine which node a key belongs to by plugging it into a hashing function, - without a need for any special mapping servers or name nodes. - </p> - <p> - Check <i><a href="/features/datagrid.html" class="text-nowrap">Data Grid</a></i> - for more information. + In addition to the standard JCache API, Ignites supports distributed ACID transactions, + scan and continuous queries, collocated processing and more. </p> + + <div class="code-examples"> + <div class="page-heading">Code Examples</div> + <!-- Nav tabs --> + <ul id="datagrid-examples" class="nav nav-tabs"> + <li class="active"><a href="#datagrid-example-basic" role="tab" data-toggle="tab">Put and Get</a></li> + <li><a href="#datagrid-example-transactions" role="tab" data-toggle="tab">Transactions</a></li> + <li><a href="#datagrid-example-locks" role="tab" data-toggle="tab">Locks</a></li> + </ul> + + <!-- Tab panes --> + <div class="tab-content"> + <div role="tabpanel" class="tab-pane active" id="datagrid-example-basic"> + <pre class="brush:java"> + Ignite ignite = Ignition.ignite(); + + // Get an instance of named cache. + final IgniteCache<Integer, String> cache = ignite.cache("cacheName"); + + // Store keys in cache. + for (int i = 0; i < 10; i++) + cache.put(i, Integer.toString(i)); + + // Retrieve values from cache. + for (int i = 0; i < 10; i++) + System.out.println("Got [key=" + i + ", val=" + cache.get(i) + ']'); + + // Remove objects from cache. + for (int i = 0; i < 10; i++) + cache.remove(i); + + // Atomic put-if-absent. + cache.putIfAbsent(1, "1"); + + // Atomic replace. + cache.replace(1, "1", "2"); + </pre> + </div> + <div role="tabpanel" class="tab-pane" id="datagrid-example-transactions"> + <pre class="brush:java"> + Ignite ignite = Ignition.ignite(); + + // Clone every object we get from cache, so we can freely update it. + IgniteCache<Integer, Account> cache = ignite.cache("cacheName"); + + try (IgniteTx tx = Ignition.ignite().transactions().txStart()) { + Account acct = cache.get(acctId); + + assert acct != null; + + // Deposit $20 into account. + acct.setBalance(acct.getBalance() + 20); + + // Store updated account in cache. + cache.put(acctId, acct); + + tx.commit(); + } + </pre> + </div> + <div role="tabpanel" class="tab-pane" id="datagrid-example-locks"> + <pre class="brush:java"> + Ignite ignite = Ignition.ignite(); + + // Get an instance of named cache. + final GridCache<String, Integer> cache = ignite.cache("cacheName"); + + // Lock cache key "Hello". + Lock lock = cache.lock("Hello"); + + lock.lock(); + + try { + cache.put("Hello", 11); + cache.put("World", 22); + } + finally { + lock.unlock(); + } + </pre> + </div> + </div> + </div> + + <section id="key-features" class="page-section"> + <h2>More on Key-Value APIs</h2> + <table class="formatted" name="key-value-apis"> + <thead> + <tr> + <th width="35%" class="left">Feature</th> + <th>Description</th> + </tr> + </thead> + <tbody> + <tr> + <td class="left">Data Grid</td> + <td> + <p> + Ignite data grid is a <code>key-value store</code> which can store data both, in-memory + and on-disk. It can be viewed as a distributed partitioned hash map, with every cluster + node owning a portion of the overall data. This way the more cluster nodes we add, + the more data we can store: + </p> + + <div class="page-links"> + <a href="/use-cases/database/datagrid.html">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">Durable Memory</td> + <td> + <p> + Ignite <code>Durable Memory</code> allows storing and processing data and indexes + both, in memory and on disk. The in-memory data, including indexes, is always + stored and managed <code>off-heap</code>, completely removing any type of Garbage + Collection overhead. + </p> + <div class="page-links"> + <a href="https://apacheignite.readme.io/docs/durable-memory" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">JCache (JSR 107)</td> + <td> + <p> + Ignite is a 100% compliant implementation of <span style="white-space: nowrap">JCache (JSR 107)</span> specification. + JCache provides a very simple to use, yet very powerful API for data caching: + </p> + <div class="page-links"> + <a href="/use-cases/caching/jcache-provider.html">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">Memory-Centric Storage</td> + <td> + <p> + Apache Ignite is based on distributed <i>memory-centric architecture</i> that combines the + performance and scale of in-memory computing together with the disk durability and strong + consistency in one system: + </p> + <div class="page-links"> + <a href="/arch/memorycentric.html">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">Collocated Processing</td> + <td> + <p> + Ignite allows executing any native Java, C++, and .NET/C# code directly on the server-side, + close to the data, in collocated fashion: + </p> + <div class="page-links"> + <a href="/features/collocatedprocessing.html" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">Client-side Near Caches</td> + <td> + <p> + Near cache is local client-side cache that stores the most recently and most frequently accessed data. + </p> + <div class="page-links"> + <a href="http://apacheignite.readme.io/docs/near-caches" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">ACID Transactions</td> + <td> + <p> + Ignite provides fully ACID compliant distributed transactions that ensure guaranteed consistency. + </p> + <div class="page-links"> + <a href="/features/transactions.html">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left" width="35%">Deadlock-Free Transactions</td> + <td> + <p> + Ignite supports deadlock-free, optimistic transactions, which do not acquire any locks, + and free users from worrying about the lock order. + Such transactions also provide much better performance: + </p> + <div class="page-links"> + <a href="https://apacheignite.readme.io/docs/transactions" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left" width="35%">Transactional Entry Processor</td> + <td> + <p> + Ignite transactional entry processor allows executing collocated user logic on the server + side within a transaction: + </p> + <div class="page-links"> + <a href="https://apacheignite.readme.io/docs/affinity-collocation#ignitecompute-vs-entryprocessor" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left" width="35%">Cross-Partition Transactions</td> + <td> + <p> + In Ignite, transactions can be performed on all partitions of a cache across the whole + cluster: + </p> + <div class="page-links"> + <a href="https://apacheignite.readme.io/docs/transactions#ignitetransactions" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left" width="35%">Locks</td> + <td> + <p> + Ignite allows developers to define explicit locks enforcing mutual exclusion on cached objects: + </p> + <div class="page-links"> + <a href="https://apacheignite.readme.io/docs/distributed-locks" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left" width="35%">Continuous Queries</td> + <td> + <p> + Continuous queries are useful for cases when you want to execute a query and then + continue to get notified about the data changes that fall into your query filter: + </p> + <div class="page-links"> + <a href="https://apacheignite.readme.io/docs/continuous-queries" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left" width="35%">Write-Through</td> + <td> + <p> + Write-Through mode allows updating the data in the database. + </p> + <div class="page-links"> + <a href="https://apacheignite.readme.io/docs/3rd-party-store#read-through-and-write-through" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">Read-Through</td> + <td> + <p> + Read-Through mode allows reading the data from the database. + </p> + <div class="page-links"> + <a href="https://apacheignite.readme.io/docs/3rd-party-store#read-through-and-write-through" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">Write-Behind Caching</td> + <td> + <p> + Ignite provides an option to asynchronously perform updates to the database via Write-Behind Caching. + </p> + <div class="page-links"> + <a href="https://apacheignite.readme.io/docs/3rd-party-store#section-write-behind-caching" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">Hibernate L2 Caching</td> + <td> + <p> + Ignite data grid can be used as <code>Hibernate Second-Level Cache</code> (or L2 cache), + which can significantly speed-up the persistence layer of your application. + </p> + <div class="page-links"> + <a href="https://apacheignite-mix.readme.io/docs/hibernate-l2-cache" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">Spring Caching</td> + <td> + <p> + Ignite provides Spring-annotation-based way to enable caching for Java methods so that + the result of a method execution is stored in the Ignite cache. If later the same + method is called with the same set of parameters, the result will be retrieved from + the cache instead of actually executing the method. + </p> + <div class="page-links"> + <a href="http://apacheignite-mix.readme.io/docs/spring-caching" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">Spring Data</td> + <td> + <p> + Apache Ignite implements Spring Data <code>CrudRepository</code> interface that not only supports basic CRUD operations but also provides access to the Apache Ignite SQL capabilities via the unified Spring Data API. + </p> + <div class="page-links"> + <a href="https://apacheignite-mix.readme.io/docs/spring-data" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">OSGI Support</td> + <td> + <p></p> + <div class="page-links"> + <a href="https://apacheignite-mix.readme.io/docs/starting-inside-an-osgi-container" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + </tbody> + </table> + </section> </section> </main> Modified: ignite/site/branches/ignite-7061/features/sql.html URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/features/sql.html?rev=1823688&r1=1823687&r2=1823688&view=diff ============================================================================== --- ignite/site/branches/ignite-7061/features/sql.html (original) +++ ignite/site/branches/ignite-7061/features/sql.html Fri Feb 9 18:45:46 2018 @@ -89,8 +89,8 @@ under the License. In addition to standard SQL features, Ignite also provides powerful processing APIs: <ul class="page-list"> <li> - <a href="/features/datagrid.html">Key-Value APIs</a> - Ignite key-value APIs allow to - interact with Ignite as with a <nobr><a href="/use-cases/database/key-value-store.html">key-value store</a></nobr>. + <a href="/use-cases/database/datagrid.html">Key-Value APIs</a> - Ignite key-value APIs allow to + interact with Ignite as with a <nobr><a href="/features/key-value-store.html">key-value store</a></nobr>. In addition to standard key-value operations supported by <nobr><a href="/use-cases/caching/jcache-provider.html">JCache (JSR 107)</a></nobr> standard, Ignite also provides extended support for distributed ACID transactions, continuous queries, partition scans, and more. Modified: ignite/site/branches/ignite-7061/features/transactions.html URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/features/transactions.html?rev=1823688&r1=1823687&r2=1823688&view=diff ============================================================================== Binary files - no diff available. Modified: ignite/site/branches/ignite-7061/includes/header.html URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/includes/header.html?rev=1823688&r1=1823687&r2=1823688&view=diff ============================================================================== --- ignite/site/branches/ignite-7061/includes/header.html (original) +++ ignite/site/branches/ignite-7061/includes/header.html Fri Feb 9 18:45:46 2018 @@ -59,7 +59,7 @@ <!-- Ignite main features. --> <li role="presentation" class="submenu-header">Features</li> <li><a href="/features/sql.html">Distributed SQL</a></li> - <li><a href="#">Distributed Key-Value</a></li> + <li><a href="/features/key-value-store.html">Distributed Key-Value</a></li> <li><a href="/features/transactions.html">ACID Transactions</a></li> <li><a href="/features/collocatedprocessing.html">Collocated Processing</a></li> <li><a href="/features/machinelearning.html">Machine Learning</a></li> @@ -107,8 +107,7 @@ <li><a href="/use-cases/database/distributed-database.html">Distributed Database</a></li> <li><a href="/use-cases/database/in-memory-database.html">In-Memory Database</a></li> <!--<li><a href="/use-cases/database/sql-database.html">SQL Database</a></li>--> - <li><a href="/features/datagrid.html">Data Grid</a></li> - <li><a href="/use-cases/database/key-value-store.html">Key-Value Store</a></li> + <li><a href="/use-cases/database/datagrid.html">Data Grid</a></li> <li class="divider"> <li role="presentation" class="submenu-header">Comparison</li> <li><a href="/use-cases/comparison/ignite-for-nosql.html">Ignite for NoSQL Users</a></li> Modified: ignite/site/branches/ignite-7061/index.html URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/index.html?rev=1823688&r1=1823687&r2=1823688&view=diff ============================================================================== --- ignite/site/branches/ignite-7061/index.html (original) +++ ignite/site/branches/ignite-7061/index.html Fri Feb 9 18:45:46 2018 @@ -193,7 +193,7 @@ under the License. </p> </div> <div class="col-sm-4 col-md-4 col-xs-12 feature-box feature-box-center"> - <a href="features/datagrid.html" title="Apache Ignite™ is an In-Memory Key Value Store"> + <a href="/use-cases/database/datagrid.html" title="Apache Ignite™ is an In-Memory Key Value Store"> <div class="distributed-sql-panel"> <p class="feature-icon"></p> <h3>Distributed Key-Value</h3> Modified: ignite/site/branches/ignite-7061/sitemap.xml URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/sitemap.xml?rev=1823688&r1=1823687&r2=1823688&view=diff ============================================================================== --- ignite/site/branches/ignite-7061/sitemap.xml (original) +++ ignite/site/branches/ignite-7061/sitemap.xml Fri Feb 9 18:45:46 2018 @@ -7,7 +7,7 @@ <priority>1.0</priority> </url> <url> - <loc>https://ignite.apache.org/use-cases/database/key-value-store.html</loc> + <loc>https://ignite.apache.org/features/key-value-store.html</loc> <lastmod>2017-08-24</lastmod> <changefreq>daily</changefreq> <priority>0.9</priority> Modified: ignite/site/branches/ignite-7061/use-cases/caching/database-caching.html URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/use-cases/caching/database-caching.html?rev=1823688&r1=1823687&r2=1823688&view=diff ============================================================================== --- ignite/site/branches/ignite-7061/use-cases/caching/database-caching.html (original) +++ ignite/site/branches/ignite-7061/use-cases/caching/database-caching.html Fri Feb 9 18:45:46 2018 @@ -54,7 +54,8 @@ under the License. <div class="col-sm-12 col-md-12 col-xs-12" style="padding:0 0 20px 0;"> <div class="col-sm-6 col-md-6 col-xs-12" style="padding-left:0;"> <p> - Ignite <code>database caching</code> is implemented in the <nobr><a href="/features/datagrid.html">data grid</a></nobr> + Ignite <code>database caching</code> is implemented in the + <nobr><a href="/use-cases/database/datagrid.html">data grid</a></nobr> component. It enables users to keep the most frequently accessed data in memory, by either partitioning or replicating it across a cluster of computers. </p> @@ -87,7 +88,8 @@ under the License. </p> <div class="page-heading">In-Memory Data Grid</div> <p> - See <a href="/features/datagrid.html" class="text-nowrap" target="_blank"><b>in-memory data grid</b></a> for more information. + See <a href="/use-cases/database/datagrid.html" class="text-nowrap" target="_blank"><b>in-memory data grid</b></a> + for more information. </p> <p> Modified: ignite/site/branches/ignite-7061/use-cases/caching/jcache-provider.html URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/use-cases/caching/jcache-provider.html?rev=1823688&r1=1823687&r2=1823688&view=diff ============================================================================== --- ignite/site/branches/ignite-7061/use-cases/caching/jcache-provider.html (original) +++ ignite/site/branches/ignite-7061/use-cases/caching/jcache-provider.html Fri Feb 9 18:45:46 2018 @@ -88,11 +88,6 @@ under the License. In addition to JCache, Ignite provides ACID transactions, distributed ACID transactions, scan and continuous queries, collocated processing, and much more. </p> - <div class="page-heading">Data Grid</div> - <p> - JCache specification is provided by the - <a href="/features/datagrid.html"><b>Data Grid</b></a> component. - </p> </section> </main> Modified: ignite/site/branches/ignite-7061/use-cases/comparison/ignite-for-nosql.html URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/use-cases/comparison/ignite-for-nosql.html?rev=1823688&r1=1823687&r2=1823688&view=diff ============================================================================== --- ignite/site/branches/ignite-7061/use-cases/comparison/ignite-for-nosql.html (original) +++ ignite/site/branches/ignite-7061/use-cases/comparison/ignite-for-nosql.html Fri Feb 9 18:45:46 2018 @@ -187,7 +187,7 @@ under the License. The other difference between Ignite and NoSQL databases is that, first, the memory is treated as a fully functional storage, not just as a caching layer, like most databases do. Second, in addition to - <a href="/features/datagrid.html">key-value</a> APIs, Ignite supports + <a href="/use-cases/database/datagrid.html">key-value</a> APIs, Ignite supports <a href="/features/sql.html">distributed SQL</a> and <a href="/features/collocatedprocessing.html">collocated processing</a> approach. </p> Modified: ignite/site/branches/ignite-7061/use-cases/comparison/ignite-for-rdbms.html URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/use-cases/comparison/ignite-for-rdbms.html?rev=1823688&r1=1823687&r2=1823688&view=diff ============================================================================== --- ignite/site/branches/ignite-7061/use-cases/comparison/ignite-for-rdbms.html (original) +++ ignite/site/branches/ignite-7061/use-cases/comparison/ignite-for-rdbms.html Fri Feb 9 18:45:46 2018 @@ -183,7 +183,7 @@ under the License. The main difference between Ignite and traditional relational databases is that, first, the memory is treated as a fully functional storage, not just as a caching layer, like most databases do. Second, Ignite is horizontally scalable, highly available and supports both - <a href="/features/datagrid.html">key-value</a> APIs and + <a href="/use-cases/database/datagrid.html">key-value</a> APIs and <a href="/features/collocatedprocessing.html">collocated processing</a> approach. </p> Copied: ignite/site/branches/ignite-7061/use-cases/database/datagrid.html (from r1823687, ignite/site/branches/ignite-7061/features/datagrid.html) URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/use-cases/database/datagrid.html?p2=ignite/site/branches/ignite-7061/use-cases/database/datagrid.html&p1=ignite/site/branches/ignite-7061/features/datagrid.html&r1=1823687&r2=1823688&rev=1823688&view=diff ============================================================================== --- ignite/site/branches/ignite-7061/features/datagrid.html (original) +++ ignite/site/branches/ignite-7061/use-cases/database/datagrid.html Fri Feb 9 18:45:46 2018 @@ -33,7 +33,7 @@ under the License. <!DOCTYPE html> <html> <head> -<link rel="canonical" href="https://ignite.apache.org/features/datagrid.html" /> +<link rel="canonical" href="https://ignite.apache.org/use-cases/database/datagrid.html" /> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> @@ -58,12 +58,12 @@ under the License. <div class="col-sm-12 col-md-12 col-xs-12" style="padding:0 0 20px 0;"> <div class="col-sm-6 col-md-6 col-xs-12" style="padding-left:0; padding-right:0"> <p> - Ignite data grid is a <code>distributed, transactional key-value store</code>. Unlike other + Ignite data grid is a distributed, transactional key-value store. Unlike other in-memory data grids (IMDG), Ignite enables storing data both, in memory and on disk, and therefore is able to store more data than can fit in physical memory. On top of the standard key-value data operations, including ACID transactions and all the - JCache (JSR 107) functionality, Ignite also supports <nobr><code>SQL queries</code></nobr> - over its data with the support for <nobr><code>distributed joins</code></nobr>. + JCache (JSR 107) functionality, Ignite also supports <nobr>SQL queries</nobr> + over its data with the support for <nobr>distributed joins</nobr>. </p> </div> @@ -95,13 +95,9 @@ under the License. rip-and-replace of the existing data, but has its limitations. For example, SQL or scan queries will only include the results stored in memory, and not in the external database, since Ignite does not have any knowledge of the external data. </p> - <p> - <a href="https://apacheignite.readme.io/docs/distributed-persistent-store" target="_blank">Read more</a> - about different types of persistence in Ignite. - </p> <div class="videos"> - <div class="page-heading">Videos:</div> + <div class="page-heading">Videos</div> <ul class="page-list"> <li> <i class="fa fa-lg fa-play-circle-o"></i> @@ -114,7 +110,7 @@ under the License. </div> <div class="code-examples"> - <div class="page-heading">Code Examples:</div> + <div class="page-heading">Code Examples</div> <!-- Nav tabs --> <ul id="datagrid-examples" class="nav nav-tabs"> <li class="active"><a href="#datagrid-example-basic" role="tab" data-toggle="tab">Put and Get</a></li> @@ -250,364 +246,245 @@ under the License. </div> </div> </div> - <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/datagrid" target="github">data grid examples</a> - available on GitHub. - </p> </section> <section id="key-features" class="page-section"> - <h2>Data Grid Features</h2> - <table class="formatted" name="Data Grid Features"> + <h2>More on Data Grid</h2> + <table class="formatted" name="key-value-apis"> <thead> - <tr> - <th width="35%" class="left">Feature</th> - <th>Description</th> - </tr> + <tr> + <th width="35%" class="left">Feature</th> + <th>Description</th> + </tr> </thead> <tbody> - <tr> - <td class="left">Key-Value Store</td> - <td> - <p> - Ignite data grid is a <code>key-value store</code> which can store data both, in-memory - and on-disk. It can be viewed as a distributed partitioned hash map, with every cluster - node owning a portion of the overall data. This way the more cluster nodes we add, - the more data we can store. - </p> - <p> - Unlike other key-value stores, Ignite determines data locality using a pluggable hashing - algorithm. Every client can determine which node a key belongs to by plugging it into a - hashing function, without a need for any special mapping servers or name nodes. - </p> - <div class="page-links"> - <a href="http://apacheignite.readme.io/docs/data-grid" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left">SQL Support</td> - <td> - <p> - In addition to key-value API, Ignite data grid has complete SQL support, including primary - and secondary indexes and distributed JOINs. - </p> - <div class="page-links"> - <a href="https://apacheignite-sql.readme.io/docs/how-ignite-sql-works" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left">Durable Memory</td> - <td> - <p> - Ignite <code>Durable Memory</code> allows storing and processing data and indexes - both, in memory and on disk. The in-memory data, including indexes, is always - stored and managed <code>off-heap</code>, completely removing any type of Garbage - Collection overhead. - </p> - <div class="page-links"> - <a href="https://apacheignite.readme.io/docs/durable-memory" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left">JCache (JSR 107)</td> - <td> - <p> - Ignite is a 100% compliant implementation of <span style="white-space: nowrap">JCache (JSR 107)</span> specification. - JCache provides a very simple to use, yet very powerful API for data caching. - </p> - <p> - Some of the JCache API features include: - <ul class="page-list"> - <li>Basic Cache Operations</li> - <li>ConcurrentMap APIs</li> - <li>Collocated Processing (EntryProcessor)</li> - <li>Events and Metrics</li> - <li>Pluggable Persistence</li> - </ul> - </p> - <div class="page-links"> - <a href="http://apacheignite.readme.io/docs/jcache" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left">Partitioning & Replication</td> - <td> - <p> - Depending on the configuration, Ignite can either <i>partition</i> or <i>replicate</i> - data. Unlike <code>REPLICATED</code> mode, where data is fully replicated across - all nodes in the cluster, in <code>PARTITIONED</code> mode Ignite will equally split the data - across multiple cluster nodes. - </p> - <p> - Ignite also allows to configure multiple <b>backup copies</b> to guarantee data resiliency - in case of node failures. - </p> - <div class="page-links"> - <a href="http://apacheignite.readme.io/docs/cache-modes" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left">Collocated Processing</td> - <td> - <p> - Ignite allows executing any native Java, C++, and .NET/C# code directly on the server-side, close to the data, in collocated fashion. - </p> - <div class="page-links"> - <a href="/features/collocatedprocessing.html" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left">Self-Healing Cluster</td> - <td> - <p> - Ignite cluster can self-heal, where clients automatically reconnect in case of failures, - slow clients are automatically kicked out, and data from failed nodes - is automatically propagated to other nodes in the grid. - </p> - <div class="page-links"> - <a href="http://apacheignite.readme.io/docs/clients-vs-servers" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left">Client-side Near Caches</td> - <td> - <p> - Near cache is local client-side cache that stores the most recently and most frequently accessed data. - </p> - <div class="page-links"> - <a href="http://apacheignite.readme.io/docs/near-caches" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left">ACID Transactions</td> - <td> - <p> - Ignite provides fully ACID compliant distributed transactions that ensure guaranteed consistency.</p> - <p> - Ignite supports <code>OPTIMISTIC</code> and <code>PESSIMISTIC</code> concurrency modes - as well as <code>READ_COMMITTED</code>, <code>REPEATABLE_READ</code>, and <code>SERIALIZABLE</code> isolation levels.</p> - <p> - Ignite transactions utilize 2PC protocol with many one-phase-commit optimizations whenever applicable. - </p> - <div class="page-links"> - <a href="http://apacheignite.readme.io/docs/transactions" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left" width="35%">Deadlock-Free Transactions</td> - <td> - <p> - Ignite supports deadlock-free, optimistic transactions, which do not acquire any locks, and free users from worrying about the lock order. Such transactions also provide much better performance. - </p> - <div class="page-links"> - <a href="https://apacheignite.readme.io/docs/transactions" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left" width="35%">Transactional Entry Processor</td> - <td> - <p> - Ignite transactional entry processor allows executing collocated user logic on the server side within a transaction. - </p> - <div class="page-links"> - <a href="https://apacheignite.readme.io/docs/affinity-collocation#ignitecompute-vs-entryprocessor" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left" width="35%">Cross-Partition Transactions</td> - <td> - <p> - In Ignite, transactions can be performed on all partitions of a cache across the whole cluster. - </p> - <div class="page-links"> - <a href="https://apacheignite.readme.io/docs/transactions#ignitetransactions" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left" width="35%">Locks</td> - <td> - <p> - Ignite allows developers to define explicit locks enforcing mutual exclusion on cached objects. - </p> - <div class="page-links"> - <a href="https://apacheignite.readme.io/docs/distributed-locks" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left" width="35%">Continuous Queries</td> - <td> - <p> - Continuous queries are useful for cases when you want to execute a query and then continue to get notified about the data changes that fall into your query filter. - </p> - <div class="page-links"> - <a href="https://apacheignite.readme.io/docs/continuous-queries" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left">Native Persistence</td> - <td> - <p> - Ignite <code>Native Persistence</code> is a distributed ACID and SQL-compliant disk - store that transparently integrates with Ignite's Durable Memory as an optional - persistence layer, storing data and indexes on SSD, Flash, 3D XPoint, or any other - types of storages. - </p> - <div class="page-links"> - <a href="https://apacheignite.readme.io/docs/distributed-persistent-store" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left"> - <b>Database Integration</b> - </td> - <td> - <p> - Ignite can automatically integrate with external databases, like RDBMS, NoSQL, HDFS and others. - </p> - <div class="page-links"> - <a href="https://apacheignite.readme.io/docs/3rd-party-store" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left" width="35%">Write-Through</td> - <td> - <p> - Write-Through mode allows updating the data in the database. - </p> - <div class="page-links"> - <a href="https://apacheignite.readme.io/docs/3rd-party-store#read-through-and-write-through" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left">Read-Through</td> - <td> - <p> - Read-Through mode allows reading the data from the database. - </p> - <div class="page-links"> - <a href="https://apacheignite.readme.io/docs/3rd-party-store#read-through-and-write-through" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left">Write-Behind Caching</td> - <td> - <p> - Ignite provides an option to asynchronously perform updates to the database via Write-Behind Caching. - </p> - <div class="page-links"> - <a href="https://apacheignite.readme.io/docs/3rd-party-store#section-write-behind-caching" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left">Web Session Clustering</td> - <td> - <p> - Ignite data grid is capable of caching web sessions of all Java Servlet - containers that follow Java Servlet 3.0 Specification, including Apache Tomcat, - Eclipse Jetty, Oracle WebLogic, and others. - </p> - <p> - Web sessions caching becomes useful when running a cluster of app servers to improve - performance and scalability of the servlet container. - </p> - <div class="page-links"> - <a href="https://apacheignite-mix.readme.io/docs/web-session-clustering" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left">Hibernate L2 Caching</td> - <td> - <p> - Ignite data grid can be used as <code>Hibernate Second-Level Cache</code> (or L2 cache), - which can significantly speed-up the persistence layer of your application. - </p> - <div class="page-links"> - <a href="https://apacheignite-mix.readme.io/docs/hibernate-l2-cache" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left">Spring Caching</td> - <td> - <p> - Ignite provides Spring-annotation-based way to enable caching for Java methods so that - the result of a method execution is stored in the Ignite cache. If later the same - method is called with the same set of parameters, the result will be retrieved from - the cache instead of actually executing the method. - </p> - <div class="page-links"> - <a href="http://apacheignite-mix.readme.io/docs/spring-caching" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left">Spring Data</td> - <td> - <p> - Apache Ignite implements Spring Data <code>CrudRepository</code> interface that not only supports basic CRUD operations but also provides access to the Apache Ignite SQL capabilities via the unified Spring Data API. - </p> - <div class="page-links"> - <a href="https://apacheignite-mix.readme.io/docs/spring-data" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left">XA/JTA</td> - <td> - <p> - Ignite can be configured with a Java Transaction API (JTA) transaction manager lookup class. - </p> - <div class="page-links"> - <a href="https://apacheignite.readme.io/docs/transactions#integration-with-jta" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left">OSGI Support</td> - <td> - <p></p> - <div class="page-links"> - <a href="https://apacheignite-mix.readme.io/docs/starting-inside-an-osgi-container" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> - <tr> - <td class="left">Binary Protocol</td> - <td> - <p> - Apache Ignite stores data in caches as <code>BinaryObjects</code> that allows you to: - </p> - <ul class="page-list"> - <li>Read a serialized object's field without full object deserialization.</li> - <li>Dynamically change an object's structure.</li> - <li>Dynamically create an object.</li> - </ul> - <div class="page-links"> - <a href="https://apacheignite.readme.io/docs/binary-marshaller" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> - </div> - </td> - </tr> + <tr> + <td class="left">Key-Value Store</td> + <td> + <p> + Ignite data grid is a <code>key-value store</code> which can store data both, in-memory + and on-disk. It can be viewed as a distributed partitioned hash map, with every cluster + node owning a portion of the overall data. This way the more cluster nodes we add, + the more data we can store: + </p> + + <div class="page-links"> + <a href="/features/key-value-store.html">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">Durable Memory</td> + <td> + <p> + Ignite <code>Durable Memory</code> allows storing and processing data and indexes + both, in memory and on disk. The in-memory data, including indexes, is always + stored and managed <code>off-heap</code>, completely removing any type of Garbage + Collection overhead. + </p> + <div class="page-links"> + <a href="https://apacheignite.readme.io/docs/durable-memory" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">JCache (JSR 107)</td> + <td> + <p> + Ignite is a 100% compliant implementation of <span style="white-space: nowrap">JCache (JSR 107)</span> specification. + JCache provides a very simple to use, yet very powerful API for data caching: + </p> + <div class="page-links"> + <a href="/use-cases/caching/jcache-provider.html">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">Memory-Centric Storage</td> + <td> + <p> + Apache Ignite is based on distributed <i>memory-centric architecture</i> that combines the + performance and scale of in-memory computing together with the disk durability and strong + consistency in one system: + </p> + <div class="page-links"> + <a href="/arch/memorycentric.html">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">Collocated Processing</td> + <td> + <p> + Ignite allows executing any native Java, C++, and .NET/C# code directly on the server-side, + close to the data, in collocated fashion: + </p> + <div class="page-links"> + <a href="/features/collocatedprocessing.html" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">Client-side Near Caches</td> + <td> + <p> + Near cache is local client-side cache that stores the most recently and most frequently accessed data. + </p> + <div class="page-links"> + <a href="http://apacheignite.readme.io/docs/near-caches" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">ACID Transactions</td> + <td> + <p> + Ignite provides fully ACID compliant distributed transactions that ensure guaranteed consistency. + </p> + <div class="page-links"> + <a href="/features/transactions.html">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left" width="35%">Deadlock-Free Transactions</td> + <td> + <p> + Ignite supports deadlock-free, optimistic transactions, which do not acquire any locks, + and free users from worrying about the lock order. + Such transactions also provide much better performance: + </p> + <div class="page-links"> + <a href="https://apacheignite.readme.io/docs/transactions" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left" width="35%">Transactional Entry Processor</td> + <td> + <p> + Ignite transactional entry processor allows executing collocated user logic on the server + side within a transaction: + </p> + <div class="page-links"> + <a href="https://apacheignite.readme.io/docs/affinity-collocation#ignitecompute-vs-entryprocessor" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left" width="35%">Cross-Partition Transactions</td> + <td> + <p> + In Ignite, transactions can be performed on all partitions of a cache across the whole + cluster: + </p> + <div class="page-links"> + <a href="https://apacheignite.readme.io/docs/transactions#ignitetransactions" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left" width="35%">Locks</td> + <td> + <p> + Ignite allows developers to define explicit locks enforcing mutual exclusion on cached objects: + </p> + <div class="page-links"> + <a href="https://apacheignite.readme.io/docs/distributed-locks" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left" width="35%">Continuous Queries</td> + <td> + <p> + Continuous queries are useful for cases when you want to execute a query and then + continue to get notified about the data changes that fall into your query filter: + </p> + <div class="page-links"> + <a href="https://apacheignite.readme.io/docs/continuous-queries" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left" width="35%">Write-Through</td> + <td> + <p> + Write-Through mode allows updating the data in the database. + </p> + <div class="page-links"> + <a href="https://apacheignite.readme.io/docs/3rd-party-store#read-through-and-write-through" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">Read-Through</td> + <td> + <p> + Read-Through mode allows reading the data from the database. + </p> + <div class="page-links"> + <a href="https://apacheignite.readme.io/docs/3rd-party-store#read-through-and-write-through" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">Write-Behind Caching</td> + <td> + <p> + Ignite provides an option to asynchronously perform updates to the database via Write-Behind Caching. + </p> + <div class="page-links"> + <a href="https://apacheignite.readme.io/docs/3rd-party-store#section-write-behind-caching" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">Hibernate L2 Caching</td> + <td> + <p> + Ignite data grid can be used as <code>Hibernate Second-Level Cache</code> (or L2 cache), + which can significantly speed-up the persistence layer of your application. + </p> + <div class="page-links"> + <a href="https://apacheignite-mix.readme.io/docs/hibernate-l2-cache" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">Spring Caching</td> + <td> + <p> + Ignite provides Spring-annotation-based way to enable caching for Java methods so that + the result of a method execution is stored in the Ignite cache. If later the same + method is called with the same set of parameters, the result will be retrieved from + the cache instead of actually executing the method. + </p> + <div class="page-links"> + <a href="http://apacheignite-mix.readme.io/docs/spring-caching" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">Spring Data</td> + <td> + <p> + Apache Ignite implements Spring Data <code>CrudRepository</code> interface that not only supports basic CRUD operations but also provides access to the Apache Ignite SQL capabilities via the unified Spring Data API. + </p> + <div class="page-links"> + <a href="https://apacheignite-mix.readme.io/docs/spring-data" target="docs">Docs for this Feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> + <tr> + <td class="left">OSGI Support</td> + <td> + <p></p> + <div class="page-links"> + <a href="https://apacheignite-mix.readme.io/docs/starting-inside-an-osgi-container" target="docs">Docs for this feature <i class="fa fa-angle-double-right"></i></a> + </div> + </td> + </tr> </tbody> </table> </section> Modified: ignite/site/branches/ignite-7061/use-cases/database/distributed-database.html URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/use-cases/database/distributed-database.html?rev=1823688&r1=1823687&r2=1823688&view=diff ============================================================================== --- ignite/site/branches/ignite-7061/use-cases/database/distributed-database.html (original) +++ ignite/site/branches/ignite-7061/use-cases/database/distributed-database.html Fri Feb 9 18:45:46 2018 @@ -123,7 +123,7 @@ under the License. </p> <p> Check <a href="/features/sql.html">SQL</a>, - <a href="/features/datagrid.html" class="text-nowrap">Data Grid</a>, and + <a href="/use-cases/database/datagrid.html" class="text-nowrap">Data Grid</a>, and <a href="/features/computegrid.html" class="text-nowrap">Compute Grid</a> features sections for more technical details. </p> Modified: ignite/site/branches/ignite-7061/use-cases/database/in-memory-database.html URL: http://svn.apache.org/viewvc/ignite/site/branches/ignite-7061/use-cases/database/in-memory-database.html?rev=1823688&r1=1823687&r2=1823688&view=diff ============================================================================== --- ignite/site/branches/ignite-7061/use-cases/database/in-memory-database.html (original) +++ ignite/site/branches/ignite-7061/use-cases/database/in-memory-database.html Fri Feb 9 18:45:46 2018 @@ -84,7 +84,7 @@ under the License. </p> <p> You should also check Ignite <a href="/features/sql.html">distributed SQL</a> and - <a href="/features/datagrid.html" class="text-nowrap">data grid</a> features. + <a href="/use-cases/database/datagrid.html" class="text-nowrap">data grid</a> features. </p> </section> </main>