47:
288:: Requires enough RAM to hold the entire system state. State changes made to a system after its last image was saved are lost in the case of a system failure or shutdown. Saving an image for every single change would be too time-consuming for most systems, so images are not used as the single persistence technique for critical systems.
281:
is an example of orthogonal persistence using a system image because it does not require any actions by the programs running on the machine. An example of non-orthogonal persistence using a system image is a simple text editing program executing specific instructions to save an entire document to a
338:
This technique is the writing to storage of only those portions of system state that have been modified (are dirty) since their last write. Sophisticated document editing applications, for example, will use dirty writes to save only those portions of a document that were actually changed since the
218:
The term "persistent" was first introduced by
Atkinson and Morrison in the sense of orthogonal persistence: they used an adjective rather than a verb to emphasize persistence as a property of the data, as distinct from an imperative action performed by a program. The use of the transitive verb
197:" or "transparent" when it is implemented as an intrinsic property of the execution environment of a program. An orthogonal persistence environment does not require any specific actions by programs running in it to retrieve or save their
330:: When journals are used exclusively, the entire (potentially large) history of all system events must be reapplied on every system startup. As a result, journals are often combined with other persistence techniques.
308:
The entire "Undo/Redo" history of user commands in a picture editing program, for example, when written to a file, constitutes a journal capable of recovering the state of an edited picture at any point in time.
406:
use a combination of the dirty writes and transaction journaling techniques mentioned above. They provide not only persistence but also other services such as queries, auditing and access control.
345:
This technique requires state changes to be intercepted within a program. This is achieved in a non-transparent way by requiring specific storage-API calls or in a transparent way with automatic
361:
that makes it easier for a program to persist its state is generically called a persistence layer. Most persistence layers will not achieve persistence directly but will use an underlying
302:
Using journals is the second simplest persistence technique. Journaling is the process of storing events in a log before each one is applied to a system. Such logs are called journals.
600:
204:
Non-orthogonal persistence requires data to be written and read to and from storage using specific instructions in a program, resulting in the use of
481:
469:
64:
111:
305:
On startup, the journal is read and each event is reapplied to the system, avoiding data loss in the case of system failure or shutdown.
83:
379:
System prevalence is a technique that combines system images and transaction journals, mentioned above, to overcome their limitations.
32:
439:
90:
476:
611:
97:
427:
79:
17:
418:
that remain persistent even after a crash or unexpected shutdown. Operating systems that employ this ability include
130:
518:
472:
656:
646:
358:
68:
651:
163:. Programs have to transfer data to and from storage devices and have to provide mappings from the native
104:
548:
254:, Fibonacci and pJama, successfully demonstrated the concepts along with the advantages to programmers.
362:
321:
498:
28:
198:
178:
152:
578:
232:
228:
57:
346:
313:
278:
215:
The advantage of orthogonal persistence environments is simpler and less error-prone programs.
538:
194:
503:
160:
641:
528:
386:
164:
8:
543:
297:
156:
449:
349:. This results in code that is slower than native code and more complicated to debug.
38:
Characteristic of state of a computer system that outlives the process that created it
588:. 10th Australian National Computer Conference. Melbourne, Australia. pp. 70–79.
533:
523:
508:
374:
317:
27:
This article is about state outliving processes. For immutable data structures, see
415:
144:
493:
574:
219:"persist" (describing an action performed by a program) is a back-formation.
174:
167:
159:
that created it. This is achieved in practice by storing the state as data in
635:
513:
459:
182:
570:
274:
268:
454:
240:
46:
251:
247:
227:
Orthogonal persistence is widely adopted in operating systems for
445:
569:
433:
422:
236:
324:
where they are also called "transaction logs" or "redo logs".
464:
403:
398:
31:. For concepts relating to the persistence of memory, see
586:
Proceedings 10th
Australian National Computer Conference
188:
392:
155:of a system that outlives (persists more than) the
71:. Unsourced material may be challenged and removed.
579:"PS-algol: A Language for Persistent Programming"
633:
608:University of Glasgow - School of CS - Research
409:
277:is the simplest persistence strategy. Notebook
210:On completion, the program persists the data
601:"Contracted Persistent Object Programming"
565:
563:
33:The Persistence of Memory (disambiguation)
257:
181:persistence by saving their documents to
131:Learn how and when to remove this message
599:Balzer, Stephanie (November 17, 2005).
560:
170:to the storage device data structures.
14:
634:
598:
352:
246:Research prototype languages such as
189:Orthogonal or transparent persistence
385:A prevalent system must have enough
368:
69:adding citations to reliable sources
40:
393:Database management systems (DBMSs)
80:"Persistence" computer science
24:
25:
668:
414:Persistent operating systems are
389:to hold the entire system state.
573:; Bailey, P.J.; Chisholm, K.J.;
262:
151:refers to the characteristic of
45:
333:
56:needs additional citations for
592:
13:
1:
554:
610:. ETH Zürich. Archived from
410:Persistent operating systems
173:Picture editing programs or
7:
549:Snapshot (computer storage)
487:
322:database management systems
291:
222:
193:Persistence is said to be "
10:
673:
396:
372:
363:database management system
295:
266:
26:
499:Persistent data structure
430:, the successor to KeyKOS
29:Persistent data structure
577:; Morrison, R. (1983).
314:journaling file systems
233:platform virtualization
177:, for example, achieve
347:program transformation
258:Persistence techniques
208:as a transitive verb:
657:Models of computation
647:Computing terminology
504:Persistent identifier
312:Journals are used by
161:computer data storage
652:Computer programming
617:on December 31, 2006
529:Java Persistence API
165:programming-language
65:improve this article
544:Service Data Object
442:, successor to EROS
436:, revisions of EROS
298:Journal (computing)
450:single-level store
353:Persistence layers
243:for state saving.
18:Persistent storage
534:System prevalence
524:Java Data Objects
509:Persistent memory
416:operating systems
375:System prevalence
369:System prevalence
318:prevalent systems
141:
140:
133:
115:
16:(Redirected from
664:
627:
626:
624:
622:
616:
605:
596:
590:
589:
583:
567:
235:systems such as
145:computer science
136:
129:
125:
122:
116:
114:
73:
49:
41:
21:
672:
671:
667:
666:
665:
663:
662:
661:
632:
631:
630:
620:
618:
614:
603:
597:
593:
581:
575:Cockshott, W.P.
568:
561:
557:
494:Persistent data
490:
482:tahrpuppy-6.0.5
412:
401:
395:
377:
371:
355:
336:
300:
294:
271:
265:
260:
225:
191:
175:word processors
168:data structures
137:
126:
120:
117:
74:
72:
62:
50:
39:
36:
23:
22:
15:
12:
11:
5:
670:
660:
659:
654:
649:
644:
629:
628:
591:
571:Atkinson, M.P.
558:
556:
553:
552:
551:
546:
541:
536:
531:
526:
521:
516:
511:
506:
501:
496:
489:
486:
485:
484:
479:
474:
470:Grasshopper OS
467:
462:
457:
452:
443:
437:
431:
425:
411:
408:
397:Main article:
394:
391:
373:Main article:
370:
367:
359:software layer
354:
351:
335:
332:
296:Main article:
293:
290:
267:Main article:
264:
261:
259:
256:
224:
221:
190:
187:
139:
138:
121:September 2014
53:
51:
44:
37:
9:
6:
4:
3:
2:
669:
658:
655:
653:
650:
648:
645:
643:
640:
639:
637:
621:September 21,
613:
609:
602:
595:
587:
580:
576:
572:
566:
564:
559:
550:
547:
545:
542:
540:
539:Orthogonality
537:
535:
532:
530:
527:
525:
522:
520:
517:
515:
514:Copy-on-write
512:
510:
507:
505:
502:
500:
497:
495:
492:
491:
483:
480:
478:
475:
473:
471:
468:
466:
463:
461:
460:IBM System/38
458:
456:
453:
451:
447:
444:
441:
438:
435:
432:
429:
426:
424:
421:
420:
419:
417:
407:
405:
400:
390:
388:
384:
383:Shortcomings:
380:
376:
366:
364:
360:
350:
348:
344:
343:Shortcomings:
340:
331:
329:
325:
323:
319:
315:
310:
306:
303:
299:
289:
287:
283:
280:
276:
275:system images
270:
263:System images
255:
253:
249:
244:
242:
238:
234:
230:
220:
216:
213:
211:
207:
202:
200:
196:
186:
184:
180:
176:
171:
169:
166:
162:
158:
154:
150:
146:
135:
132:
124:
113:
110:
106:
103:
99:
96:
92:
89:
85:
82: –
81:
77:
76:Find sources:
70:
66:
60:
59:
54:This article
52:
48:
43:
42:
34:
30:
19:
619:. Retrieved
612:the original
607:
594:
585:
413:
402:
382:
381:
378:
356:
342:
341:
337:
334:Dirty writes
328:Shortcomings
327:
326:
311:
307:
304:
301:
286:Shortcomings
285:
284:
272:
269:System image
245:
226:
217:
214:
209:
205:
203:
192:
172:
148:
142:
127:
118:
108:
101:
94:
87:
75:
63:Please help
58:verification
55:
642:Persistence
339:last save.
279:hibernation
229:hibernation
149:persistence
636:Categories
555:References
241:VirtualBox
195:orthogonal
91:newspapers
448:with its
488:See also
292:Journals
252:Napier88
248:PS-algol
223:Adoption
455:Phantom
446:Multics
440:Coyotos
231:and in
206:persist
157:process
105:scholar
477:Lua OS
434:CapROS
423:KeyKOS
282:file.
273:Using
237:VMware
107:
100:
93:
86:
78:
615:(PDF)
604:(PDF)
582:(PDF)
465:IBM i
404:DBMSs
199:state
183:files
179:state
153:state
112:JSTOR
98:books
623:2015
519:CRUD
428:EROS
399:DBMS
357:Any
320:and
239:and
84:news
387:RAM
143:In
67:by
638::
606:.
584:.
562:^
365:.
316:,
250:,
212:.
201:.
185:.
147:,
625:.
134:)
128:(
123:)
119:(
109:·
102:·
95:·
88:·
61:.
35:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.