Vlákno názorů k článku
Výpadek TTC ochromil 200 tisíc e-mailových schránek Seznamu
Mikuláš Patočkla (neregistrovaný)
11. 7. 2006 14:08
Databáze mají transakce, filesystém má fsync()
... a když to programátoři ze seznamu neumějí používat, tak jim to spadlo. Nesvaloval bych to na výpadek elektřiny, ups, filesystém, linux. Je to prostě tím, že ta mailová aplikace je špatně napsaná.
Jan Forman (neregistrovaný)
11. 7. 2006 15:01
Re: Databáze mají transakce, filesystém má fsync()
takhle jednoduchý to v plném pracovním vytížení zase není
pokud bych chtěl použít fsync tak musím zastavit procesy které manipulují s daty, jinak to nemá moc velký smysl.
to asi může rozkázat jenom božský Ivo (jenže tomu v tichomoří zrovna nešel satelitní telefon)
Pokud budete chtít deaktivovat některé služby určitě potřebujete povolení...
A že by aplikace při každé změně volala fsync no tomu snad nikdo nevěříme že ne? asi by moc rychlá nebyla
pokud bych chtěl použít fsync tak musím zastavit procesy které manipulují s daty, jinak to nemá moc velký smysl.
to asi může rozkázat jenom božský Ivo (jenže tomu v tichomoří zrovna nešel satelitní telefon)
Pokud budete chtít deaktivovat některé služby určitě potřebujete povolení...
A že by aplikace při každé změně volala fsync no tomu snad nikdo nevěříme že ne? asi by moc rychlá nebyla
13. 7. 2006 19:27
Re: Databáze mají transakce, filesystém má fsync()
Při fsyncu se ostatní procesy nemusejí zastavovat.
fsync je přibližně stejně náročný jako přečtení nenacachovaného souboru, takže pokud jim server utáhne náhodné čtení souborů, když si uživatel prohlíží maily, není důvod, aby to neutáhlo náhodné zápisy do souborů, když ty maily přicházejí (navíc tomu odesílajícímu SMTP je celkem jedno, pokud dostane potvrzení až za několik sekund, takže je příjem mailů ještě méně náročný než jejich prohlížení).
Jen mě zarazilo, že když technologie chránící data proti výpadku napájení jsou vyvinuté už několik desetiletí, tak to stále není používáno a přispivatelé v tomto fóru kritizují všechny možné komponenty, které za to vůbec nemohou.
fsync je přibližně stejně náročný jako přečtení nenacachovaného souboru, takže pokud jim server utáhne náhodné čtení souborů, když si uživatel prohlíží maily, není důvod, aby to neutáhlo náhodné zápisy do souborů, když ty maily přicházejí (navíc tomu odesílajícímu SMTP je celkem jedno, pokud dostane potvrzení až za několik sekund, takže je příjem mailů ještě méně náročný než jejich prohlížení).
Jen mě zarazilo, že když technologie chránící data proti výpadku napájení jsou vyvinuté už několik desetiletí, tak to stále není používáno a přispivatelé v tomto fóru kritizují všechny možné komponenty, které za to vůbec nemohou.
Majkls (neregistrovaný)
11. 7. 2006 15:07
Re: Databáze mají transakce, filesystém má fsync()
Nebyl bych tak útočný. Když si představím několik desítek vláken útočících na I/O scheduler, nebude žádná legrace to dát do kupy. RAID a podobný v tomhle případě nepomůže. Ono se to mluví...fsync. Ale:
1) databáze si zpravidla sama určuje, kdy bude zapisovat na disk a kdy ne. Ani transakce nepomůžou. Pomůže jen dobrá záloha :)
2) použití fsync() výrazně zpomalí celý systém. Chci vidět, toho člověka, který to bude používat na tyto aplikace.
Nehledě na množství dat, které tam protéká. Zeptej se na wz,
tak dlouho obnovovali rozbitý raid...
Nikdy neodhadneš míru poškození souborů. Samozřejmě například INNODB má něco jako žurnál, takže (snad) pozná, co je špatně. Já osobně bych měl taky strach při tomhle množství věcí něco pokoušet. Možná by bylo lepší (pokud by se na to přišlo včas) všechny servery včas vypnout. Ušetřila by se práce s obnovou. Ale po bitvě je každý kapitán...
1) databáze si zpravidla sama určuje, kdy bude zapisovat na disk a kdy ne. Ani transakce nepomůžou. Pomůže jen dobrá záloha :)
2) použití fsync() výrazně zpomalí celý systém. Chci vidět, toho člověka, který to bude používat na tyto aplikace.
Nehledě na množství dat, které tam protéká. Zeptej se na wz,
tak dlouho obnovovali rozbitý raid...
Nikdy neodhadneš míru poškození souborů. Samozřejmě například INNODB má něco jako žurnál, takže (snad) pozná, co je špatně. Já osobně bych měl taky strach při tomhle množství věcí něco pokoušet. Možná by bylo lepší (pokud by se na to přišlo včas) všechny servery včas vypnout. Ušetřila by se práce s obnovou. Ale po bitvě je každý kapitán...
Michal Kára (neregistrovaný)
11. 7. 2006 15:58
Re: Databáze mají transakce, filesystém má fsync()
Prabvda pravdouci.
Navic fsync() nestaci, vetsinu kdyz uz, tak pouzivat fdatasync() a to vetsinou docela dost zpomaluje. Koneckoncu, fsync() by mel teoreticky nahradit zurnalovaci FS a ten tam maji nasazeny.
Navic fsync() nestaci, vetsinu kdyz uz, tak pouzivat fdatasync() a to vetsinou docela dost zpomaluje. Koneckoncu, fsync() by mel teoreticky nahradit zurnalovaci FS a ten tam maji nasazeny.