Hlavní navigace

Názor ke článku Jak zakázat explicitní fsync (v Ubuntu) od Ondřej Novák - Řeknu asi šílený, ale zřejmě naprosto relevantní argument....

  • 17. 6. 2012 22:04

    Ondřej Novák (neregistrovaný)

    Řeknu asi šílený, ale zřejmě naprosto relevantní argument. Co když je cílovým mediem magnetofonová páska? Pokud by OS měl zaručit fyzické zapsání, tak tím totálně zlikviduje výkon systému, protože by to znamenalo přetočit pásku na určité místo a provést zápis, ať již to zařízení zrovna vykonává cokoliv.

    Obecně mám za to, že zápisy jsou vždy pomalejší, než čtení a navíc by zápisy měly býti méně prioritní, než čtení (přednost mají ti, co odchází z disku, pak teprve ti, co na disk vstupují). Protože při čtení se musí čekat, zatímco při zápisu většinou ne. Jakékoliv nucení zápisů ze strany aplikace znamená, že aplikace neadekvátně zasahuje do priorit nastavené pro optimální výkon. A to jen pro případ události, která nastane výjimečně. U zabezpečených systému se stejně předpokládá UPSka a signál, který syncne disky při výpadku proudu před tím, než v UPSce dojde baterka

    Pro integritu dat přitom není rozhodující, zda se zápis provedl fyzicky. Rozhodující je správné pořadí zápisu. Drtivá většina žurnálovacích systémů je na tom založena. A žurnály jsou jedinou ochranou před vytváření nekonzistentních stavů při výpadcích. Fsync je tedy nejen nevhodná, ale i zbytečná. (k pořadí stačí, jak píšete, barriers, ačkoliv nevím, kde to v tom linuxu najdu),