V oboru databází jsem naprostý laik, takže se rád nechám poučit. Představoval jsem si (možná naivně), že integritu dat, zápisů a transakcí řeší samotná databáze a na garance na úrovni souborového systému de facto nespoléhá, neboli v tomto konkrétním případě má smysl používat systém, který je co nejjednodušší a nejrychlejší?
Databáze zajišťuje datovou integritu (jako cizí klíče, unique, etc). Jenže pak se musí toto všechno reálně zapamatovat.
Představte si klasickou transakci. Když dáte commit, tak tak nějak očekáváte, že tam ty data opravdu budou. Ne, že zmizí, protože někdo vypnul počítač dřív, než db engine stihl zapsat data na disk, nebo než se provedl sync.
Samozřejmě, vždycky je tam nějaká důvěra, db věří, že když skončí sync, tak že data jsou zapsaná. sync věří, že když mu FS řekne ok, tak že jsou zapsaná. FS věří, že když zapíše data, tak že se ty data opravdu propíšou na plotnu. A nakonce všichni věří, že někdo neflákne do hdd kladivem.
Pokud by filesystém negarantoval bezpečný zápis, tak databáze sama nezmůže nic ohledně bezpečnosti dat. Navíc zapsat data bezpečně na médium je dost pomalá operace, takže ACID databáze se snaží optimalizovat zápis - a to jak minimalizací random IO operací, tak minimalizací operací fsync (čekání na zápis na médium). Design ACID databází předpokládá hloupý FS (v 90letech žádné jiné běžně nebyly k dispozici), od kterého se nechce nic jiného než spolehlivě číst a zapisovat data do souborů (a pokud možno stabilně co nejrychleji). Což je pravděpodobně ten důvod, proč v Tomášových benchmarcích jsou ext4 a XFSko výrazně lepší než COW filesystémy, které se trochu s tím, co dělají databáze, překrývají. A tudíž jednodušší (rychlejší) je lepší (pokud je možné se na něj spolehnout).
to je pěkná blbost. stačí sebemenší chyba diletantského programátora (což je u her naprosto běžný čas především kvůli šíleným termínům) a rozesere to i data cizích aplikaci (potažmo i samotný HW na němž to běží).
nicméně mi to připomělo závěr jisté povídky se Score (už nevim jak se to jmenovalo) od Andreje: "Brain boot sector failed" :D