Jestli treba MySQL neztrati jen par % zaznamu treba proto, ze uz jich vetsina lezela na disku uz pred crashem, protoze uz to byly stare zaznamy.
Anebo MySQL dela nekdy taky fsync(), coz u testovacich programu nevime.
Fakt tezko rict, co si z tohoto clanku vzit, ze zminky, ze DB4.1 precetla 571 zaznamu ze 70000 se da odhadovat, ze se pracovalo se 70000 zaznamy, jestli se nacitaly nebo menily ...
Pokud pouzivas funkce read a write (pochopitelne, fprintf je neco jineho), pak jsou buffery pouze v kernelu. To znamena, ze i kdyz aplikaci zabijes kill -9 (o mene agresivnich zpusobech nemluve), budou data zapsana, at uz volala fsync nebo ne. Funkce jako fsync chrani pred havarii OS nebo HW (napr. vypadek proudu).