[elektro] PC, hibatűrő fájlba írás módszere
Stolmár Tamás
knight at borsodi.qualitis.hu
Wed Apr 17 10:57:29 CEST 2013
fsync hívás végén (unix eseten) az adat garantáltan a diszkre kerül.
Postgresql-nél ez tudja a saját jogjai segítségével, hogy ha commit van
az biztosam megmarad.
(commit parancs addig nem tér vissza amig nem sikerült ezt garantáltan
diszkre tenni az OS szemszögéből.)
Ott már csak az fordulhat elő, hogy a diszk cache-be bekerült, de a
diszknek nem volt ideje kiírni.
IDE, SATA eszköznél még ez a write back cache is tiltható, de ekkor a
write performance a tizedére csökken.
SCSI esetén a TCQ elvileg ezt is megoldja - visszajön az info hogy a
drive melyik write parancsot hajtotta végre, és ez OS szinten kezelhető.
FLASH alapú meghajtók is brutális cache-ket használnak. ráadásul ott egy
írás egy olvasás+törlés+visszaírás kombóra fordul.
Ha a processz meghal, az OS lezárja a file-t, mintha a program zárta
volna be.
Ami módosítás volt , az megmarad.
Megoldás lehet, hogy az ilyen adatok külön eszközre kerülnek aminél a
writeback cache tiltva van, OS szinten, eszköz szinten.
On 04/17/2013 10:40 AM, hozso_001 at freemail.hu wrote:
> Jó, de ha kihúzzák a gépet és az op.rendszer áll le?
> (Win7) Akkor is látja, hogy helytelenül volt leállítva
> és javítja a filet?
>
> Én valami olyasmire gondoltam, hogy minden
> hozzáírás előtt az eredeti fájlt elmentem backup-nak
> más kiterjesztéssel. Így az utolsó hozzáírás előtti
> állapot megmarad. Vagy a másolat, vagy az eredeti
> akkor olvasható. De ez eléggé favágásnak tűnik... :D
>
>
> Üdv.: Horváth Zsolt
>
>
>
> 2013.04.17. 10:29 keltezéssel, Xorn írta:
>
>> Elvileg az op.rendszernek kezelni kell tudni a processz nem tervszerű
>> kihalását, és zárnia kellene az összes nyitott file-ját anélkül, hogy
>> ezt külön le kellene programoznod. Best regards, Andy
>> ----------------------------------------- elektro[-flame|-etc]
>>
> -----------------------------------------
> elektro[-flame|-etc]
>
>
More information about the Elektro
mailing list