-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathnative-persistence.html
583 lines (580 loc) · 34.4 KB
/
native-persistence.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1" />
<title>Native Persistence - Apache Ignite</title>
<meta name="description" content="Apache Ignite native persistence is a distributed, ACID, and SQL-compliant disk-based store. It let Ignite store more data on disk than it can cache in memory and to enable fast cluster restarts." />
<link rel="canonical" href="https://ignite.apache.org/arch/native-persistence.html" />
<meta property="og:title" content="Native Persistence - Apache Ignite" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://ignite.apache.org/arch/native-persistence.html" />
<meta property="og:image" content="/img/og-pic.png" />
<meta
property="og:description"
content="Apache Ignite native persistence is a distributed, ACID, and SQL-compliant disk-based store. It let Ignite store more data on disk than it can cache in memory and to enable fast cluster restarts."
/>
<link rel="stylesheet" href="/js/vendor/hystmodal/hystmodal.min.css?ver=0.9" />
<link rel="stylesheet" href="/css/utils.css?ver=0.9" />
<link rel="stylesheet" href="/css/site.css?ver=0.9" />
<link rel="stylesheet" href="../css/native-persistence.css?ver=0.9" />
<link rel="stylesheet" href="../js/vendor/highlight/default.min.css?ver=0.9" />
<link rel="stylesheet" href="../js/vendor/highlight/night-owl.css?ver=0.9" />
<script src="../js/vendor/highlight/highlight.min.js"></script>
<link rel="stylesheet" href="/css/media.css?ver=0.9" media="only screen and (max-width:1199px)" />
<link rel="icon" type="image/png" href="/img/favicon.png" />
<!-- Matomo -->
<script>
var _paq = (window._paq = window._paq || []);
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['setDoNotTrack', true]);
_paq.push(['disableCookies']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function () {
var u = 'https://analytics.apache.org/';
_paq.push(['setTrackerUrl', u + 'matomo.php']);
_paq.push(['setSiteId', '77']);
var d = document,
g = d.createElement('script'),
s = d.getElementsByTagName('script')[0];
g.async = true;
g.src = u + 'matomo.js';
s.parentNode.insertBefore(g, s);
})();
</script>
<!-- End Matomo Code -->
</head>
<body>
<!-- MOBILE MENU START-->
<div class="hystmodal" id="jsMenuModal" aria-hidden="true">
<div class="hystmodal__wrap">
<div class="hystmodal__window mobmenu" role="dialog" aria-modal="true">
<button class="hystmodal__close" data-hystclose="">Close</button>
<div class="mobmenu__wrap">
<a class="mobmenu__logo" href="/"><img src="/img/logo.svg" alt="Logo" /></a>
<div class="mobmenu__menu">
<ul>
<li><a href="/docs/latest/">Quick Start</a></li>
<li><a href="/resources.html#learning">Learning resources</a></li>
<li><a href="/resources.html#training">Training and Courses</a></li>
<li><a href="/faq.html">FAQ</a></li>
<li>
<span class="mobmenu__parent"><a href="/use-cases.html">Use Cases</a><button class="mobmenu__opener"></button></span>
<ul>
<li><a href="/use-cases/in-memory-cache.html">In-Memory Cache</a></li>
<li><a href="/use-cases/in-memory-data-grid.html">In-Memory Data Grid</a></li>
<li><a href="/use-cases/in-memory-database.html">In-Memory Database</a></li>
<li><a href="/use-cases/key-value-store.html">Key-Value Store</a></li>
<li><a href="/use-cases/high-performance-computing.html">High Performance Computing</a></li>
<li><a href="/use-cases/digital-integration-hub.html">Digital Integration Hub</a></li>
<li><a href="/use-cases/spark-acceleration.html">Spark Acceleration</a></li>
<li><a href="/use-cases/hadoop-acceleration.html">Hadoop Acceleration</a></li>
<li><a href="/use-cases.html">View All</a></li>
</ul>
</li>
<li>
<span class="mobmenu__parent"><a href="/features/">Features</a><button class="mobmenu__opener"></button></span>
<ul>
<li><a href="/arch/multi-tier-storage.html">Multi-Tier Storage</a></li>
<li><a href="/arch/native-persistence.html">Native Persistence</a></li>
<li><a href="/features/sql.html">Distributed SQL</a></li>
<li><a href="/features/key-value-apis.html">Key-Value APIs</a></li>
<li><a href="/features/acid-transactions.html">ACID Transactions</a></li>
<li><a href="/features/compute-apis.html">Compute APIs</a></li>
<li><a href="/features/service-apis.html">Services</a></li>
<li><a href="/features/machinelearning.html">Machine Learning</a></li>
<li><a href="/features/streaming.html">Real-Time Streaming APIs</a></li>
<li><a href="/docs/latest/messaging">Messaging</a></li>
<li><a href="/docs/latest/key-value-api/continuous-queries">Continuous Queries</a></li>
<li><a href="/features/index.html">View All</a></li>
</ul>
</li>
<li>
<a href="/community.html">Community</a>
<ul class="isdefault">
<li><a href="/community.html">Project Info</a></li>
<li><a href="/events.html">Events</a></li>
</ul>
</li>
<li><a href="/use-cases/provenusecases.html">Powered by</a></li>
<li><a href="/resources.html">Resources</a></li>
<li><a href="/blog/">Blog</a></li>
<li><a href="/docs/latest/">Docs</a></li>
</ul>
<a class="button mobmenu__button" href="/download.cgi">Download Ignite</a>
</div>
<!-- //mobmenu__menu-->
</div>
<!-- //mobmenu__wrap-->
</div>
<!-- //mobmenu-->
</div>
</div>
<!-- MOBILE MENU END-->
<header class="hdr hdr__blue jsHdrBase">
<div class="jsHdrLine">
<div id="promotion-bar">
<a
href="https://ignite-summit.org/2025/?utm_medium=website-direct&utm_source=apache_ignite&utm_term=ignite-summit&utm_content=event-hosted&utm_campaign=2023-06-06-ignite-summit-nam"
target="_blank"
title="Ignite Summit 2025"
rel="noopener noreferrer"
>Ignite Summit 2025 — Watch on demand <span class="more d-none d-lg-block"><img src="/images/promos/arrow-white.svg" /></span
></a>
</div>
<div class="hdr__wrap flexi">
<button class="hdr__burger" data-menumodal="#jsMenuModal"><img src="/img/menu.svg" alt="" /></button
><a class="hdr__logo" href="/"><img class="hdr__logoimg hdr__logo--white" src="/img/logo-white.svg" alt="" /><img class="hdr__logoimg hdr__logo--black" src="/img/logo.svg" alt="" /></a
><a class="button hdr__button" href="/download.cgi">Download Ignite</a>
<nav class="hdrmenu">
<ul class="flexi">
<li class="js-hasdrop"><a class="hdrmenu--expanded" href="/" data-panel="getStarted">Get Started</a></li>
<li class="js-hasdrop"><a class="hdrmenu__current hdrmenu--expanded" href="/features" data-panel="features">Features</a></li>
<li class="js-hasdrop"><a class="hdrmenu--expanded" href="/community.html" data-panel="community">Community</a></li>
<li><a href="/use-cases/provenusecases.html" data-panel="">Powered By</a></li>
<li class="js-hasdrop"><a class="hdrmenu--expanded" href="/resources.html" data-panel="resources">Resources</a></li>
<li><a href="///ignite.apache.org/docs/latest/" data-panel="">Docs</a></li>
</ul>
</nav>
<div class="dropmenu">
<div class="dropmenu__panel" data-menupanel="getStarted">
<div class="container dropmenu1__grid">
<div class="dropmenu1__buttonwrap"> </div>
<div class="dropmenu__box dropmenu__box--buttonin">
<a class="dropmenu__redbutton" href="https://ignite.apache.org/docs/latest/"> <img src="/img/menu/icon-red-rocket.svg" alt="" /><span>Quick Start Guide</span></a>
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/resources.html#learning"><span>Learning resources</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/resources.html#training"><span>Training and Courses</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/faq.html"><span>FAQ</span></a>
</li>
</ul>
</div>
<div class="dropmenu__box">
<p class="capstext"><a class="dropmenu__capslink" href="/use-cases.html">USE CASES</a></p>
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/use-cases/in-memory-cache.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>In-Memory Cache</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/use-cases/in-memory-data-grid.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>In-Memory Data Grid</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/use-cases/in-memory-database.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>In-Memory Database</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/use-cases/key-value-store.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>Key-Value Store</span></a>
</li>
</ul>
</div>
<div class="dropmenu__box no-border">
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/use-cases/high-performance-computing.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>High-Performance Computing</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/use-cases/digital-integration-hub.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>Digital Integration Hub</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/use-cases/spark-acceleration.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>Spark Acceleration</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/use-cases/hadoop-acceleration.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>Hadoop Acceleration</span></a>
</li>
</ul>
</div>
</div>
<!-- /.dropmenu1__grid-->
<div class="panelmorelinkwrap panelmorelinkwrap--end container"><a class="panellink" href="/use-cases.html">View all</a></div>
</div>
<!-- /.dropmenu__panel-->
<div class="dropmenu__panel" data-menupanel="features">
<div class="container dropmenu2__grid">
<div class="dropmenu__box">
<div class="capstext">MULTI-TIER STORAGE</div>
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/arch/multi-tier-storage.html"><img src="/img/menu/icon-db.svg" alt="" /><span>Multi-Tier Storage</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/arch/native-persistence.html"><img src="/img/menu/icon-db.svg" alt="" /><span>Native Persistence</span></a>
</li>
</ul>
</div>
<div class="dropmenu__box">
<div class="capstext">ESSENTIAL Developer APIs</div>
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/features/sql.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Distributed SQL</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/features/key-value-apis.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Key-Value APIs</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/features/acid-transactions.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>ACID Transactions</span></a>
</li>
</ul>
</div>
<div class="dropmenu__box">
<div class="capstext">High-Performance <br />Computing APIs</div>
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/features/compute-apis.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Compute APIs</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/features/service-apis.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Services</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/features/machinelearning.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Machine Learning</span></a>
</li>
</ul>
</div>
<div class="dropmenu__box">
<div class="capstext">Real-Streaming APIs</div>
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/features/streaming.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Real-Time Streaming APIs</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="https://ignite.apache.org/docs/latest/messaging"><img src="/img/menu/icon-cube.svg" alt="" /><span>Messaging</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="https://ignite.apache.org/docs/latest/key-value-api/continuous-queries"><img src="/img/menu/icon-cube.svg" alt="" /><span>Continuous Queries</span></a>
</li>
</ul>
</div>
</div>
<!-- /.dropmenu2__grid-->
<div class="panelmorelinkwrap"><a class="panellink" href="/features/">View all</a></div>
</div>
<!-- /.dropmenu__panel-2-->
<div class="dropmenu__panel" data-menupanel="community">
<div class="container dropmenu3__grid">
<div class="dropmenu__box">
<div class="capstext"><a class="dropmenu__capslink" href="/community.html">Project Info</a></div>
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/community.html#story"><img src="/img/menu/icon-clip.svg" alt="" /><span>Apache Ignite Story</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/community.html#community"><img src="/img/menu/icon-comment.svg" alt="" /><span>Meet The Community</span></a>
</li>
</ul>
</div>
<div class="dropmenu__box no-border">
<div class="capstext"> </div>
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/community.html#contributing"><img src="/img/menu/icon-puzzle.svg" alt="" /><span>Start Contributing</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/community.html#faq"><img src="/img/menu/icon-question.svg" alt="" /><span>Ask Questions</span></a>
</li>
</ul>
</div>
<div class="dropmenu__box">
<div class="capstext"><a class="dropmenu__capslink" href="/events.html">Events</a></div>
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/events.html#summit"><img src="/img/menu/icon-calendar.svg" alt="" /><span>Apache Ignite Summit</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/events.html#meetups"><img src="/img/menu/icon-calendar.svg" alt="" /><span>Meetups</span></a>
</li>
</ul>
</div>
<div class="dropmenu__box no-border">
<div class="capstext"> </div>
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/events.html#upcoming"><img src="/img/menu/icon-calendar.svg" alt="" /><span>Upcoming Events</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/events.html#past"><img src="/img/menu/icon-calendar.svg" alt="" /><span>Past Events</span></a>
</li>
</ul>
</div>
</div>
<!-- /.dropmenu3__grid-->
</div>
<!-- /.dropmenu__panel-->
<div class="dropmenu__panel" data-menupanel="resources">
<div class="container dropmenu1__grid">
<div class="dropmenu1__buttonwrap"> </div>
<div class="dropmenu__box dropmenu__box--buttonin">
<a class="dropmenu__redbutton blog" href="/blog/"><img src="/img/menu/icon-blog.svg" alt="" /><span>Blog</span></a>
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/resources.html#technical"><span>Technical resources</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/resources.html#learning"><span>Learning resources</span></a>
</li>
</ul>
</div>
<div class="dropmenu__box blog">
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/resources.html#training"><span>Training and Courses</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/resources.html#book"><span>Apache Ignite Book</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/resources.html#mail"><span>Mailing Lists, Forums And Discussion Archives</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/faq.html"><span>FAQ</span></a>
</li>
</ul>
</div>
</div>
<!-- /.dropmenu1__grid-->
</div>
<!-- /.dropmenu__panel-->
</div>
<!-- /.dropmeu-->
</div>
</div>
</header>
<div class="dropmenu__back"></div>
<header class="hdrfloat hdr__white jsHdrFloatBase"></header>
<section class="innerhero">
<div class="container innerhero__cont">
<div class="innerhero__main">
<div class="innerhero__pre pb-3">Apache Ignite</div>
<h1 class="h1 innerhero__h1">Native Persistence</h1>
<div class="innerhero__descr pt-2 h5">
Scale beyond available memory capacity <br />
and skip memory warm-ups on restarts
</div>
<div class="innerhero__action"><a class="button innerhero__button" href="https://ignite.apache.org/docs/latest/index">Start Coding</a></div>
</div>
<img class="innerhero__pic innerhero__pic--native" src="/img/features/native-header.svg" alt="Native Persistence" />
</div>
</section>
<!-- /.innerhero-->
<section class="native1 container flexi">
<div class="native1__block native1__block--bad">
<img class="native1__icon" src="/img/features/smile-doesnt-have.svg" alt="" />
<div class="native1__title fz20 pt-1x">Usually, in-memory caches and databases provide limited persistence capabilities.</div>
<p class="pt-2">For instance, some solutions create a backup copy of <br />the in-memory data purely for restart purposes.</p>
</div>
<div class="native1__block">
<img class="native1__icon" src="/img/features/smile-done.svg" alt="" />
<div class="native1__title fz20 pt-1x">
Ignite persistence doesn’t have any limitations. <br />
Our native persistence behaves like a classic <br />disk-based database.
</div>
</div>
</section>
<section class="native2 container">
<div class="native2__grid">
<article class="native2item">
<h3 class="fz20 native2item__title">Scale beyond memory <br />capacity</h3>
<p class="pt-1x">100% of data is always stored on disk. You decide how much memory to allocate to your data.</p>
</article>
<article class="native2item">
<h3 class="fz20 native2item__title">Just seconds needed <br />for recovery</h3>
<p class="pt-1x">Ignite becomes operational from disk instantaneously. There is no need to wait for the data to get preloaded on restarts.</p>
</article>
<article class="native2item">
<h3 class="fz20 native2item__title">Query in-memory <br />and on-disk data</h3>
<p class="pt-1x">If any record is missing in memory, then Ignite reads it from disk. This is supported for all the APIs including SQL.</p>
</article>
</div>
</section>
<section class="native-howwork container">
<div class="native-howwork__wrap flexi">
<div class="native-howwork__left">
<h3 class="h5">How it works</h3>
<div class="native-howwork__text pt-1">
<p>
The native persistence functions as a distributed, ACID, and SQL-compliant disk-based store. It integrates into the Ignite <a href="/features/multi-tier-storage.html">multi-tier storage</a> as a disk
tier.
</p>
<p class="pt-1">When the native persistence is enabled, Ignite stores a superset of data on disk and caches as much as it can in memory.</p>
</div>
</div>
<div class="native-howwork__right">
<p>For example</p>
<p class="pt-1x">
If your application needs to store 200 records in an Ignite cluster and the memory capacity allows caching only 150 records, then all 200 will be stored on disk, out of which 150 will
be served from memory while the rest 50 records from disk whenever the application requests them.
</p>
</div>
</div>
</section>
<section class="native-points container">
<h2 class="h4">Checkpointing And Write-Ahead Logging <br />Ensure Durability And Consistency Of Data</h2>
<div class="native-points__grid pt-5">
<div class="native-points__item fz20"><p>Committed transactions always survive failures</p></div>
<div class="native-points__item fz20"><p>The cluster can always be recovered to the latest successfully committed transaction</p></div>
</div>
</section>
<section class="native-steps">
<div class="container">
<h2 class="h4">Three-Step Process To Update Your Data <br />At In-Memory Speed But Not Losing A Bit</h2>
<img class="native-steps__pic" src="/img/features/native-stepspic.svg" alt="" />
<div class="native-steps__grid">
<article class="nativestepitem">
<i class="fz20 pb-1x">01</i>
<div class="nativestepitem__text">
<p>
As soon as the update comes from the application side, a record is updated in memory. Then, the change is added
<a href="https://ignite.apache.org/docs/latest/persistence/native-persistence.html#write-ahead-log">to the write-ahead log (WAL).</a>
</p>
<p>The purpose is to propagate updates to disk in the fastest way possible and provide a consistent recovery mechanism that remediates full cluster failures.</p>
</div>
</article>
<article class="nativestepitem">
<i class="fz20 pb-1x">02</i>
<div class="nativestepitem__text">
<p>As the WAL grows, it periodically gets checkpointed to the main storage.</p>
<p>
<a href="https://ignite.apache.org/docs/latest/persistence/native-persistence.html#checkpointing">Checkpointing</a> is the process of copying dirty pages from the memory tier to the partition files
on disk.
</p>
<p class="nativestepitem__small">A dirty page is a page that has been updated in memory and appended to the WAL, but has not yet been written to the respective partition file on disk.</p>
</div>
</article>
<article class="nativestepitem">
<i class="fz20 pb-1x">03</i>
<div class="nativestepitem__text">
<p>After a while, the information about updates in WAL can be removed, compressed or moved to archive.</p>
<p>So you can reuse your disk space.</p>
</div>
</article>
</div>
</div>
</section>
<section class="nativecode container jsTabWrap">
<header class="blockheader blockheader--spl flexi">
<h2 class="h4 blockheader__left">You Decide Which Data To Persist</h2>
<div class="blockheader__right fz20">
<p>Toggle a single configuration setting to turn a cluster into a database <br />that scales across memory and disk</p>
</div>
</header>
<div class="nativecode__tabctrls flexi">
<a class="nativecode__link active" href="#" data-tablink="nativeTabXML">XML</a><a class="nativecode__link" href="#" data-tablink="nativeTabJava">Java</a><a class="nativecode__link" href="#" data-tablink="nativeTabNET">C#/.NET</a>
</div>
<div class="nativecode__tabs">
<div class="nativecode__tab active" data-tab="nativeTabXML">
<pre class="nativecode__codebox"> <code class="xml"><bean class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="dataStorageConfiguration">
<bean class="org.apache.ignite.configuration.DataStorageConfiguration">
<property name="defaultDataRegionConfiguration">
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="persistenceEnabled" value="true"/>
</bean>
</property>
</bean>
</property>
</bean></code></pre>
</div>
<div class="nativecode__tab" data-tab="nativeTabJava">
<pre class="nativecode__codebox"> <code class="java">IgniteConfiguration cfg = new IgniteConfiguration();
DataStorageConfiguration storageCfg = new DataStorageConfiguration();
// Enable Ignite Persistence
storageCfg.getDefaultDataRegionConfiguration().setPersistenceEnabled(true);
// Using the new storage configuration
cfg.setDataStorageConfiguration(storageCfg);</code></pre>
</div>
<div class="nativecode__tab" data-tab="nativeTabNET">
<pre class="nativecode__codebox"> <code class="csharp">var cfg = new IgniteConfiguration
{
DataStorageConfiguration = new DataStorageConfiguration
{
DefaultDataRegionConfiguration = new DataRegionConfiguration
{
Name = "Default_Region",
PersistenceEnabled = true
}
}
};</code></pre>
</div>
</div>
</section>
<!-- /.nativecode-->
<section class="native-bottom container">
<div class="native-bottom__grid">
<article class="nativebotblock">
<div class="h4 nativebotblock__title"><img class="nativebotblock__icon" src="/img/features/native-rocket.svg" alt="" /><span>Ready to Start?</span></div>
<p class="nativebotblock__text">Discover more details about native persistence <br />and configure it for your use-case</p>
<a class="nativebotblock__link arrowlink" href="https://ignite.apache.org/docs/latest/persistence/native-persistence" target="_blank">Native Persistence Usage and Configuration</a>
</article>
<article class="nativebotblock nativebotblock--learn">
<div class="h4 nativebotblock__title"><img class="nativebotblock__icon" src="/img/features/native-docs.svg" alt="" /><span>Want to Learn More?</span></div>
<p class="nativebotblock__text">
Check out the details of native persistence <br />implementation, <a href="https://www.youtube.com/watch?v=6Yg5QW-XFVc&list=PLMc7NR20hA-I2EfyXeaSRHY5dRFtK_NF0&index=6" target="_blank">or watch a video</a>
</p>
<a class="nativebotblock__link arrowlink" href="https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Persistent+Store+-+under+the+hood" target="_blank">Native Persistence Implementation Details</a>
</article>
</div>
</section>
<footer class="footer">
<div class="container footer__top">
<section class="footer1">
<a class="footer__title" href="/features/">Features</a>
<ul class="footer__menu">
<li><a href="/arch/multi-tier-storage.html">Multi-Tier Storage</a></li>
<li><a href="/arch/native-persistence.html">Native Persistence</a></li>
<li><a href="/features/sql.html">Distributed SQL</a></li>
<li><a href="/features/acid-transactions.html">ACID Transactions</a></li>
<li><a href="/features/key-value-apis.html">Key Value APIs</a></li>
<li><a href="/features/compute-apis.html">Compute APIs</a></li>
<li><a href="/features/machinelearning.html">Machine Learning</a></li>
<li><a href="/features/service-apis.html">Services</a></li>
<li><a href="/features/streaming.html">Real-Streaming APIs</a></li>
<li><a href="https://ignite.apache.org/docs/latest/key-value-api/continuous-queries">Continuous Queries</a></li>
<li><a href="https://ignite.apache.org/docs/latest/messaging">Messaging</a></li>
</ul>
</section>
<section class="footer2">
<a class="footer__title" href="/use-cases/">Use Cases</a>
<ul class="footer__menu">
<li><a href="/use-cases/in-memory-cache.html">In-Memory Cache</a></li>
<li><a href="/use-cases/in-memory-data-grid.html">In-Memory Data Grid</a></li>
<li><a href="/use-cases/in-memory-database.html">In-Memory Database</a></li>
<li><a href="/use-cases/high-performance-computing.html">High-Performance Computing</a></li>
<li><a href="/use-cases/digital-integration-hub.html">Digital Integration Hub</a></li>
<li><a href="/use-cases/key-value-store.html">Key-Value Store</a></li>
<li><a href="/use-cases/spark-acceleration.html">Apache Spark Acceleration</a></li>
<li><a href="/use-cases/hadoop-acceleration.html">Apache Hadoop Acceleration</a></li>
</ul>
</section>
<section class="footer3"><a class="footer__title" href="/our-community.html">Community</a><a class="footer__title" href="/resources.html">Resources</a><a class="footer__title" href="/events.html">Events</a></section>
<section class="footer4">
<div class="footer4__item">Join Our <a href="mailto:[email protected]">Dev Mailing List</a></div>
<div class="footer4__item pt-2">Or write your question</div>
<div class="footer4__item pt-1">[email protected]</div>
<div class="footer4__item pt-5">Follow Us:</div>
<div class="footer4__socwrap flexi pt-2">
<a class="footer4__soc" href="https://github.com/apache/ignite" target="_blank"><img src="/img/icon-github.svg" alt="" /></a
><a class="footer4__soc" href="https://www.linkedin.com/showcase/apache-ignite/" target="_blank"><img src="/img/icon-linkedin.svg" alt="" /></a
><a class="footer4__soc" href="https://twitter.com/apacheignite" target="_blank"><img src="/img/icon-twitter.svg" alt="" /></a
><a class="footer4__soc" href="https://www.meetup.com/Apache-Ignite-Virtual-Meetup/" target="_blank"><img src="/img/icon-meetup-black.png" alt="" /></a>
</div>
<a class="footer4__button button" href="https://ignite.apache.org/docs/latest/index">Start Using Apache Ignite </a>
</section>
</div>
<div class="container footer__bot">
<p>© 2015 - 2024 <a href="http://www.apache.org/">The Apache Software Foundation.</a></p>
<p class="pt-1x">Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation</p>
<p class="pt-1x"><a href="http://apache.org/foundation/policies/privacy.html">Privacy Policy</a></p>
</div>
</footer>
<a class="scrollTop" href="#"
><svg class="feather feather-chevron-up" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="18 15 12 9 6 15"></polyline></svg
></a>
<script src="/js/vendor/hystmodal/hystmodal.min.js"></script>
<script src="/js/vendor/smoothscroll.js"></script>
<script src="/js/main.js?ver=0.9"></script>
</body>
</html>