[22] software se těžko něco bez proudu dozví. Jediný, na co lze "možná" spolehnout je pořadí. Tedy při obnovení lze podle množství zapsaných dat a známého pořadí rozhodnout, co bylo a nebylo zapsáno. fsync se používá pro oddělení dvou zápisů, zápisy před fsync a zápisy po fsync, nestane se pak, že by data po fsync byly zapsána před těmy, které byly zapsána před fsync. Díky cache to možné je, protože ty se nevyprazdňují v tom pořadí, v jakém byly plněny, ale tak jak se operačnímu systému hodi.
Proto jsem říkal, že kdyby fsync fungoval jako seřazovací funkce, pak bych jeho použití nezakazoval. Seřazovací funkce nemusí nutně čekat na dokončení, musí jen aplikaci dát jistotu, že některá data se zapíší až po zapsání jiných dat.
Jinak výpadky proudu řeší žurnály, a to ať již na straně filesystému, nebo si aplikace sama musí vést žurnály pro data. Tam chápu, že uzavření transakce v žurnálu může vyžadovat fsync, jenže opět, není potřeba, aby se na něj čekalo. Jen by operační systém měl zaručit, že data zapsaná po fsync nebudou na disk přepsána před daty,které byly zapsané před fsync.
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 48 574×
Přečteno 22 609×
Přečteno 21 788×
Přečteno 18 070×
Přečteno 16 653×