Bir süre önce, bu makalede oldukça iyi özetlenen kirli bir ayrılmadan sonra ext4'ün potansiyel olarak boş dosyaları bırakması hakkında bazı tartışmalar oldu . Temel olarak, gecikmeli ayırma nedeniyle, yazma işlemleri, yazma günlüğünün ext günlüğünün varsayılan işleme aralığından (5 saniye) çok daha uzun süre tutulabilir.
Sorunlar, belirli durumlarda blok tahsisini zorlayan ve böylece varsayılan olarak en fazla 5 saniye sonra verileri diske zorlayan bir düzeltme ekinde giderilmiş gibi görünüyor.
Bir uygulama, dosyanın kendisini kesmeden veya eklemeden bir dosyanın mevcut bölümlerinin üzerine yazdığında ne olacağını merak ediyorum. Bu da 5 saniye içinde diske zorlanacak mı?
Bir dosyaya eklemekten farklı bir durum gibi görünüyor: Eklerken dosya boyutu değişir, bu da bir meta veri değişikliğidir; bu nedenle, bir dergi taahhüdü 5 saniye içinde gerekli olacaktır ve veriler = sipariş nedeniyle, güvenlik endişeleri nedeniyle verilerin bundan önce yazılması gerekecektir (aksi takdirde diğer kullanıcıların silinen dosyalarının bir kısmı ekteki sahibine görünebilir dosya).
Yalnızca dosya verilerinin üzerine yazarken, eski veriler yenisiyle aynı kullanıcıya ait olduğundan, veri yazma işleminin meta veri günlüğü işleminden önce gerçekleşmesi için hiçbir neden yoktur. Yani yazma zaten taahhütten önce olur mu yoksa dergi taahhüt aralığından daha uzun geciktirilebilir mi? Eğer öyleyse, ne kadar?
Güncelleme: Doğru olanı, yani fsync () kullanarak tüm bunların önemsiz olduğunu biliyorum. (Bu ext4 ve veri kaybı ile ilgili tüm tartışmaların ana nedeniydi - sorun sadece fsync () ing değil, doğru anlarda değil uygulamalar ile ilgili.) Kendi başvurumu yazmıyorum, soruyorum çünkü ben tüm uygulamalarımın doğru olanı yapıp yapmadığını bilmiyorum ve böyle "tehlikeli" yazarlar için yaklaşık bir zaman dilimi bilmek istiyorum. Sormamın nedeni, grafik sürücümün çekirdek paniklerine düzenli olarak neden olması ve son 5 saniyeden fazla veri yazma konusunda endişelenmem gerekip gerekmediğini bilmek istiyorum.