Bu makale, O_DIRECT ile açılan dosyalar için her yazma işleminde fsync (veya fdatasync) çağrılarının etkisini, özellikle innodb_flush_method seçeneği bağlamında inceliyor. Temel iddia, güç kaybı koruması olmayan SSD'lerde yazma işlemlerinin hızlı olmasına rağmen fsync çağrılarının yavaş olduğudur. Bu durum, performans sorunları raporlanırken bağlamın ne kadar önemli olduğunu bir kez daha gösteriyor; zira aynı testler, farklı donanım ve yapılandırmalarda çok farklı sonuçlar verebilir.
Yazar, mini PC'leri için fsync gecikmesini düşürmek amacıyla Samsung 990 Pro'dan Crucial T500'e geçtiğini belirtiyor. Tüketici sınıfı SSD'lerde yazma hızları yüksek olsa da, fsync performansının genellikle düşük olduğuna dikkat çekiliyor. Mümkünse kurumsal sınıf SSD'lerin kullanılması, aksi takdirde fsync ve fdatasync gecikmelerini anlamak için kapsamlı testler yapılması öneriliyor.
Makale ayrıca InnoDB'nin O_DIRECT ve O_DIRECT_NO_FSYNC ile nasıl çalıştığını detaylandırıyor. O_DIRECT kullanıldığında, her yazma grubundan sonra fsync çağrıları yapılırken, O_DIRECT_NO_FSYNC bu çağrıların sıklığını önemli ölçüde azaltarak yalnızca önemli dosya sistemi meta verisi güncellemeleri gerektiğinde gerçekleştiriyor. Yazar, referans kılavuzundaki yanıltıcı bir ifadeyi düzelterek, InnoDB'nin her yazma işleminden sonra değil, her yazma grubundan sonra fsync yaptığını açıklıyor. Güç kaybı korumasının olmaması, küçük yazmaları hızlandıran yazma arabellekleri nedeniyle fsync'i bir darboğaz haline getirebilir.
Veritabanı performansını optimize etmek için SSD seçiminde güç kaybı koruması ve `fsync` gecikmesinin kritik bir faktör olduğunu gösteriyor.