blob: 585fefc77862b6cab84d9383e9b375119f55a5ed [file] [log] [blame]
<!--
▄▄▄ ██▓███ ▄▄▄ ▄████▄ ██░ ██ ▓█████ ██▓ ▄████ ███▄ █ ██▓▄▄▄█████▓▓█████
▒████▄ ▓██░ ██▒▒████▄ ▒██▀ ▀█ ▓██░ ██▒▓█ ▀ ▓██▒ ██▒ ▀█▒ ██ ▀█ █ ▓██▒▓ ██▒ ▓▒▓█ ▀
▒██ ▀█▄ ▓██░ ██▓▒▒██ ▀█▄ ▒▓█ ▄ ▒██▀▀██░▒███ ▒██▒▒██░▄▄▄░▓██ ▀█ ██▒▒██▒▒ ▓██░ ▒░▒███
░██▄▄▄▄██ ▒██▄█▓▒ ▒░██▄▄▄▄██ ▒▓▓▄ ▄██▒░▓█ ░██ ▒▓█ ▄ ░██░░▓█ ██▓▓██▒ ▐▌██▒░██░░ ▓██▓ ░ ▒▓█ ▄
▓█ ▓██▒▒██▒ ░ ░ ▓█ ▓██▒▒ ▓███▀ ░░▓█▒░██▓░▒████▒ ░██░░▒▓███▀▒▒██░ ▓██░░██░ ▒██▒ ░ ░▒████▒
▒▒ ▓▒█░▒▓▒░ ░ ░ ▒▒ ▓▒█░░ ░▒ ▒ ░ ▒ ░░▒░▒░░ ▒░ ░ ░▓ ░▒ ▒ ░ ▒░ ▒ ▒ ░▓ ▒ ░░ ░░ ▒░ ░
▒ ▒▒ ░░▒ ░ ▒ ▒▒ ░ ░ ▒ ▒ ░▒░ ░ ░ ░ ░ ▒ ░ ░ ░ ░ ░░ ░ ▒░ ▒ ░ ░ ░ ░ ░
░ ▒ ░░ ░ ▒ ░ ░ ░░ ░ ░ ▒ ░░ ░ ░ ░ ░ ░ ▒ ░ ░ ░
░ ░ ░ ░░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
-->
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE html>
<html>
<head>
<link rel="canonical" href="https://ignite.apache.org/use-cases/caching/database-caching.html" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Database Caching Use Case - Apache Ignite</title>
<link media="all" rel="stylesheet" href="/css/all.css?v=1514336028">
<link href="https://netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.css" rel="stylesheet">
<link media="all" rel="stylesheet" href="/css/syntaxhighlighter.css">
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic' rel='stylesheet' type='text/css'>
<!--#include virtual="/includes/sh.html" -->
</head>
<body>
<div id="wrapper">
<!--#include virtual="/includes/header.html" -->
<main id="main" role="main" class="container">
<section id="database-caching" class="page-section">
<h1 class="first">Database Caching</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;">
<p>
Ignite <code>database caching</code> is implemented in the
<nobr><a href="/features/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>
<div class="page-heading">Write-Through & Read-Through</div>
<p>
Whenever an update happens in the in-memory cache, Ignite can optionally propagate it
to the underlying database. Also, whenever the data is requested from cache and is not
there, Ignite can automatically load it from the underlying database. Such behavior
is called <code class="text-nowrap">write-through</code> and
<code class="text-nowrap">read-through</code> correspondingly.
</p>
</div>
<div class="col-sm-6 col-md-5 col-xs-12" style="padding-right:0">
<img class="img-responsive" src="/images/in_memory_data.png" width="400px" style="float:right;"/>
</div>
</div>
<div class="page-heading">Write-Behind</div>
<p>
In a simple write-through mode each cache put and remove operation will involve a
corresponding request to the persistent storage and therefore the overall duration of
the cache update might be relatively long. To mitigate such cases, Ignite offers an
option to perform an asynchronous persistent store update also known as
<code class="text-nowrap">write-behind</code>.
</p>
<div class="page-heading">Automatic Persistence</div>
<p>
Ignite ships with its own database schema mapping wizard which provides automatic support for
integrating with persistence stores. This utility automatically connects to the underlying database
and generates all the required XML OR-mapping configuration and Java domain model POJOs.
</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.
</p>
<p>
</p>
</section>
</main>
<!--#include virtual="/includes/footer.html" -->
</div>
<!--#include virtual="/includes/scripts.html" -->
</body>
</html>