Персистентність в програмуванні означає здатність стану існувати довше, ніж процес, що створив його. Без цієї можливості, стан може існувати лише в оперативній пам'яті і втрачається, коли оперативна пам'ять вимикається, наприклад, при вимкненні комп'ютера.
Це досягається шляхом зберігання стану як даних на пристрої тривалого зберігання, такому як жорсткий диск чи флеш-пам'ять.
Наприклад, графічні редактори чи текстові процесори досягають персистентності стану шляхом зберігання своїх документів у файл.
Ортогональна чи прозора персистентність
Персистентність називається «ортогональною» чи «прозорою», якщо вона реалізована як внутрішня властивість середовища виконання програми. Середовище для ортогональної персистентності не потребує жодних спеціальних дій програм, що виконуються в ньому, для збереження чи відновлення свого стану.
Неортогональна персистентність потребує запису й читання даних на пристрої зберігання шляхом використання спеціальних інструкцій у програмі, для опису чого використовується допоміжне дієслово зберігати: При завершенні програма зберігає дані.
Перевага середовища ортогональної персистентності — простіші й менш схильні до помилок програми.
Способи реалізації персистентності
Образи системи
Використання — найпростіший спосіб реалізації персистентності. Сплячий режим ноутбука — приклад ортогональної персистентності з використанням образу системи, оскільки він не потребує ніяких дій програм, запущених на машині. Прикладом неортогональної персистентності з використанням образу системи є виконання редактором простого тексту специфічних інструкцій для збереження всього документу в файл.
Недоліки: Зміни стану, зроблені в системі після останнього збереження образу втрачаються в випадку збою чи вимкнення системи. Збереження образу після кожної невеликої зміни може стати занадто часоємним для більшості систем, тому образи не використовуються як метод простої персистентності для критичних систем.
Журнали
Використання журналів — другий за простотою спосіб реалізації персистентності. Журналювання — процес збереження подій у лог перед застосуванням до системи. Такі логи називаються журналами.
На старті журнал читається, і кожна дія повторно застосовується до системи, що дозволяє уникнути втрати даних у випадку збою чи вимкнення.
Наприклад, уся історія скасування/повторення команд користувача у графічному редакторі при записі в файл утворює журнал, придатний для відновлення стану редагованого малюнка в будь-який момент часу.
Журнали використовуються журнальними файловими системами і СУБД, де вони також називаються логами транзакцій чи логами повторних дій.
Недоліки: Журнали часто поєднуються з іншими методиками персистентності, щоб уся (потенційно велика) історія всіх подій системи не потребувала повторного застосування при запуску системи.
Превалентність системи
Превалентність системи (System prevalence) — методика, що поєднує системні образи й журнали транзакцій, розглянуті вище, щоб обійти їхні обмеження.
Недоліки: Превалентна система повинна мати достатньо оперативної пам'яті для розміщення всього стану системи.
«Брудний» запис
«Брудний» запис полягає у записі на зовнішньому пристрої лише тих частин стану системи, що були змінені («забруднились») після свого останнього запису. Наприклад, складні програми редагування документів використовуватимуть «брудний» запис для збереження лише тих частин документа, що змінились після останнього збереження.
Недоліки: Ця техніка потребує перехоплення змін стану в межах програми. Це досягається непрозорим способом, що потребує спеціальних викликів API збереження, або прозорим способом з автоматичною трансформацією програми. В результаті, код стає повільнішим, ніж нативний код, і його важче відлагоджувати.
Рівні персистентності
Будь-який (software layer), що допомагає програмі зберегти стан, узагальнено називається рівнем персистентності. Більшість рівнів персистентності не досягають персистентності безпосередньо, а використовують основну СКБД.
СКБД
СКБД використовують поєднання «брудного» запису й журналу транзакцій, розглянутих вище. Вони забезпечують не лише персистентність, а й інші послуги, такі як запити, ревізії й контроль доступу.
Персистентні операційні системи
Персистентні ОС — операційні системи, що зберігають свій стан навіть після збою чи неочікуваного вимкнення. Комп'ютер лишається в тому ж стані, навіть якщо його вимкнути, подібно до телевізора чи якогось простого пристрою. До операційних систем, що забезпечують таку можливість, належать:
- , переробка EROS
- , нащадок EROS
- , нащадок KeyKOS
- Multics з однорівневим сховищем
Див. також
Ця стаття не містить . (березень 2017) |
Це незавершена стаття про програмування. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Persistentnist v programuvanni oznachaye zdatnist stanu isnuvati dovshe nizh proces sho stvoriv jogo Bez ciyeyi mozhlivosti stan mozhe isnuvati lishe v operativnij pam yati i vtrachayetsya koli operativna pam yat vimikayetsya napriklad pri vimknenni komp yutera Ce dosyagayetsya shlyahom zberigannya stanu yak danih na pristroyi trivalogo zberigannya takomu yak zhorstkij disk chi flesh pam yat Napriklad grafichni redaktori chi tekstovi procesori dosyagayut persistentnosti stanu shlyahom zberigannya svoyih dokumentiv u fajl Ortogonalna chi prozora persistentnistPersistentnist nazivayetsya ortogonalnoyu chi prozoroyu yaksho vona realizovana yak vnutrishnya vlastivist seredovisha vikonannya programi Seredovishe dlya ortogonalnoyi persistentnosti ne potrebuye zhodnih specialnih dij program sho vikonuyutsya v nomu dlya zberezhennya chi vidnovlennya svogo stanu Neortogonalna persistentnist potrebuye zapisu j chitannya danih na pristroyi zberigannya shlyahom vikoristannya specialnih instrukcij u programi dlya opisu chogo vikoristovuyetsya dopomizhne diyeslovo zberigati Pri zavershenni programa zberigaye dani Perevaga seredovisha ortogonalnoyi persistentnosti prostishi j mensh shilni do pomilok programi Sposobi realizaciyi persistentnostiObrazi sistemi Vikoristannya najprostishij sposib realizaciyi persistentnosti Splyachij rezhim noutbuka priklad ortogonalnoyi persistentnosti z vikoristannyam obrazu sistemi oskilki vin ne potrebuye niyakih dij program zapushenih na mashini Prikladom neortogonalnoyi persistentnosti z vikoristannyam obrazu sistemi ye vikonannya redaktorom prostogo tekstu specifichnih instrukcij dlya zberezhennya vsogo dokumentu v fajl Nedoliki Zmini stanu zrobleni v sistemi pislya ostannogo zberezhennya obrazu vtrachayutsya v vipadku zboyu chi vimknennya sistemi Zberezhennya obrazu pislya kozhnoyi nevelikoyi zmini mozhe stati zanadto chasoyemnim dlya bilshosti sistem tomu obrazi ne vikoristovuyutsya yak metod prostoyi persistentnosti dlya kritichnih sistem Zhurnali Vikoristannya zhurnaliv drugij za prostotoyu sposib realizaciyi persistentnosti Zhurnalyuvannya proces zberezhennya podij u log pered zastosuvannyam do sistemi Taki logi nazivayutsya zhurnalami Na starti zhurnal chitayetsya i kozhna diya povtorno zastosovuyetsya do sistemi sho dozvolyaye uniknuti vtrati danih u vipadku zboyu chi vimknennya Napriklad usya istoriya skasuvannya povtorennya komand koristuvacha u grafichnomu redaktori pri zapisi v fajl utvoryuye zhurnal pridatnij dlya vidnovlennya stanu redagovanogo malyunka v bud yakij moment chasu Zhurnali vikoristovuyutsya zhurnalnimi fajlovimi sistemami i SUBD de voni takozh nazivayutsya logami tranzakcij chi logami povtornih dij Nedoliki Zhurnali chasto poyednuyutsya z inshimi metodikami persistentnosti shob usya potencijno velika istoriya vsih podij sistemi ne potrebuvala povtornogo zastosuvannya pri zapusku sistemi Prevalentnist sistemi Dokladnishe Prevalentnist sistemi System prevalence metodika sho poyednuye sistemni obrazi j zhurnali tranzakcij rozglyanuti vishe shob obijti yihni obmezhennya Nedoliki Prevalentna sistema povinna mati dostatno operativnoyi pam yati dlya rozmishennya vsogo stanu sistemi Brudnij zapis Brudnij zapis polyagaye u zapisi na zovnishnomu pristroyi lishe tih chastin stanu sistemi sho buli zmineni zabrudnilis pislya svogo ostannogo zapisu Napriklad skladni programi redaguvannya dokumentiv vikoristovuvatimut brudnij zapis dlya zberezhennya lishe tih chastin dokumenta sho zminilis pislya ostannogo zberezhennya Nedoliki Cya tehnika potrebuye perehoplennya zmin stanu v mezhah programi Ce dosyagayetsya neprozorim sposobom sho potrebuye specialnih viklikiv API zberezhennya abo prozorim sposobom z avtomatichnoyu transformaciyeyu programi V rezultati kod staye povilnishim nizh nativnij kod i jogo vazhche vidlagodzhuvati Rivni persistentnostiBud yakij software layer sho dopomagaye programi zberegti stan uzagalneno nazivayetsya rivnem persistentnosti Bilshist rivniv persistentnosti ne dosyagayut persistentnosti bezposeredno a vikoristovuyut osnovnu SKBD SKBDSKBD vikoristovuyut poyednannya brudnogo zapisu j zhurnalu tranzakcij rozglyanutih vishe Voni zabezpechuyut ne lishe persistentnist a j inshi poslugi taki yak zapiti reviziyi j kontrol dostupu Persistentni operacijni sistemiPersistentni OS operacijni sistemi sho zberigayut svij stan navit pislya zboyu chi neochikuvanogo vimknennya Komp yuter lishayetsya v tomu zh stani navit yaksho jogo vimknuti podibno do televizora chi yakogos prostogo pristroyu Do operacijnih sistem sho zabezpechuyut taku mozhlivist nalezhat pererobka EROS nashadok EROS nashadok KeyKOS Multics z odnorivnevim shovishemDiv takozhCRUD Java Persistence API Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno berezen 2017 Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi