VrtuleFS, aneb souborový systém, který byste nikdy nechtěli

Občas mívám nápady, jak některé věci vylepšit. Nedávno jsem přemýšlel, jaké nové funkce bych zaimplementoval do nového souborového systému, který bych si rád zkusil implementovat, až budu mít dostatek volného času. Systém samozřejmě nazvu VrtuleFS, o tom není pochyb.

Jeden z mých nápadů se jmenuje copy-on-write. Ano, tato technika se používá ve správě paměti a spočívá v tom, že části knihoven, do kterých (částí) se málo zapisuje, jsou sdíleny mezi všemi procesy operačního systému. Pokud jeden proces do takto upravené paměťové stránky zapíše, operační systém mu vytvoří privátní kopii, kde se změny projeví. Zbytek "světa" sdílí původní stránku dál. Tento způsob se vyplatí například pro sdílení oblastí paměti obsahujících kód. Krom malware a anti-malware aplikací se modifikace kódu za běhu vidí málokdy.

Copy-on-write tedy šetří paměť. Nešlo by tuto techniku aplikovat i na poli souborových systémů? Představa jistě zajímavá. Představte si ty výhody:

  • Kopírování souborů v rámci jednoho disku v konstatním čase. Spočívá v podstatě pouze ve vytvoření hardlinku.
  • Ušetří se místo na disku, protože k opravdovému kopírování dojde, až když to bude nutné - bude třeba zapsat změněný obsah "zkopírovaného" souboru.
  • Rychlost mazání nebude nijak negativně ovlivněna

Bohužel situace není tak růžová. Zamysleme se nad odpovědí na otázku: "Proč kopírujeme soubory?" Jedna z možných (a možná i velmi častých) odpovědí je "Abychom měli někde zálohu, kdyby se něco poškodilo." K přesunu dat při kopírování dochází pouze virtuálně. Tato drobná vada na kráse je vyvážena faktem, že se většinou nezálohuje na stejný disk (viz první výhoda). Ale existují i situace, kdy se hodí míti více kopií stejného souboru na jednom disku.

Problém se asi bude skrývat ve větší náročnosti operací s takovýmito soubory, které se divně kopírují. Navíc může dojít k nedostatku místa na disku pouze tím, že zapisujete do souboru, aniž by zapsaná data jeho velikost zvětšovala, což může působit trochu zvláštně.

I přesto mi expanze copy-on-write na poli souborových systémů přijde jako zajímavá myšlenka. Asi v tomto stavu zůstanu, dokud mne někdo neroznese na kopytech.

A closed mouth says nothing wrong; a closed mind does nothing right.