BT Sözlüğü › Programlama › fsync

fsync

Programlama Svenska → Güncellendi: 2026-10-10

Yazmaları çekirdeğin sayfa önbelleğinden kalıcı depolamaya zorlayan sistem çağrısı. Bu olmadan "kaydedilmiş" dosyanız yalnızca RAM'de durur ve elektrik gidince kaybolur.

Sıradan bir write() veri sayfa önbelleğine girer girmez döner; hızlıdır ama söz vermez. fsync(fd) diskin onayını bekler, bu da milisaniyelere mal olur ve veritabanlarında commit gecikmesinin tam sebebidir. fdatasync() üst veriyi atlar ve daha ucuzdur. İki klasik tuzak: dizin girdisi yeniyse dosyayı eşlemek yetmez, dizini de eşlemek gerekir; ayrıca yazma önbellekli diskler, bariyerler yoksa verinin plakaya ulaştığı konusunda yalan söyleyebilir. 2018'de PostgreSQL geliştiricileri bir de "fsyncgate"i keşfetti: Linux başarısız bir geri yazmadan sonra hata bayrağını atıyordu, dolayısıyla veri kaybolmuşken bir sonraki fsync başarı döndürüyordu.

← Sözlüğe dön