Odpovídáte na názor ke článku Jak zakázat explicitní fsync (v Ubuntu).
[36] Nemáte pravdu. Databáze u synchronní replikace vzátí řízení klientovi (příkaz commit skončí bez chyby) až po té, co jsou data zapsaná na všech replikačních uzlech. Funguje to tedy zcela stejně, jako u jednoho lokální db démona (s tím, že zde se čeká na toho nejpomalejšího vzdáleného).
Při výpadku je jasné, co se commitlo (spolehlivě na všechny uzly) a co ne.
Mě je zcela jedno, co BFU pozná a co nepozná. Uživatelé si stěžovali, že se jim na ext4 ztrácí data v případě crashe OS. Mohlo za to jednak delayed allocation (novinka v ext4 proti 3) a také to, že programy využívaly sémantiku, která byla zcela náhodná a nečekaná (díky ordered journal, commit=5), tedy, že se data fsyncla před metadaty a jakákoliv změna metadat tak nechtěně zaručila i spolehlivý zápis dat (tyhle vadné programy to řešili nějak přes přejmenování). Tohle fungovalo pouze na ext3 v určitém konkrétním nastavení a přes to změna na ext4 způsobila poměrně silnou bouří. Právě od těch BFU.
Zastaralý. Pokud ordered zápisy budou vracet protvzení o svém provedení (protože to je skutečně potřeba) potom ok. Jenže potvrzený zápis je vlastně fsync. Takže trochu kruh, že ano.
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 57 613×
Přečteno 27 724×
Přečteno 26 404×
Přečteno 24 368×
Přečteno 22 865×