Odpovídáte na názor ke článku Jak zakázat explicitní fsync (v Ubuntu).
Tommy, proč si myslím, že aplikace nemá co kecat do nastavení operačního systému a jeho práce s diskem? Operační systém je tu od toho, aby izoloval aplikace od HW. Pokud tedy operační systém je schopen zajistit aplikaci to co požaduje, tedy zápis dat na disk, tak skutečně aplikace nemá nárok na to vyžadovat po operačním systému fyzické vykonání. Už proto, že tenhle nárok není možné zaručit.
To co OS musí aplikaci zajistit je, aby data byla koherentní, tedy aby zápis v jednom procesu se pak projevil při čtení v jiném procesu. Pokud má aplikace k dispozici funkci flush, tak jen proto, aby zajistila, že interní vyrovnávací paměti se přepíší do vyrovnávacích pamětí OS, které zajišťují koherenci. OS by měl aplikaci zajistit pořadí, aspoň na kritických místech, rozhodně ale nemusí zaručovat aplikaci fyzický zápis. Může to být taky proto, že cílové médium není zrovna k dispozici, je vytížené, nebo OS jednoduše ví, že zápisy lze pozdržet, nebo sloučit do jednoho balíku, protože OS má tradičně větší přehled o stavu systému, než samotná aplikace. Co když se ukáže, že aplikace zapisuje data pro jiný proces,který je následně načte a soubor smaže. OS tohle může lépe podchytit a ušetřit spoustu výkonu.
Pokud by fsync v btrfs zajišťoval pouze funkci seřazení, bez nutnosti provádět fyzický zápis, pak ať tam ta funkce zůstane. Ale zatím to je výkonnostní problém.
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 60 161×
Přečteno 28 501×
Přečteno 26 843×
Přečteno 24 575×
Přečteno 23 924×