แแ, แแแแแแแแแ แฆแ แฃแแแแแแ แกแแกแขแแแแแจแ แแแแแชแแแแ แจแแแแฎแแแก แกแขแแแแแฃแ แแแแก, แแแแแแฌแงแแแขแ แกแแแฃแแแ แ แแแแแก แแแแแชแแ, แ แแแ แแแแ แฌแแฃแแแ, แ แแ แแแกแแแก แซแแ แแแแแ แ แแ. แแ
แแ แกแขแแขแแแจแ แแ แแแแแแแ Linux แคแแแแแก API-แแแแ แแแฌแแแแแฃแ แแแแ แแแแแแก แแแฅแแแแแแแแก. แ แแแแ แช แฉแแแก, แแฅ แงแแแแแคแแ แ แแแ แขแแแ แฃแแแ แแงแแก: แแ แแแ แแแ แฃแฌแแแแแก แแ แซแแแแแแก write()
แแ แแ แแ แซแแแแแแก แแแฅแแแแแแแก แแแกแ แฃแแแแแก แจแแแแแ แแแแแชแแแแแ แฃแกแแคแ แแฎแแ แจแแแแแฎแแแ แแแกแแแ. แแแแ แแ write()
แแฎแแแแ แแแแแแแชแแแก แแแแแชแแแแแก แแแแแ แแแก RAM-แจแ แแแแแแ แ แแแ แแแแก แฅแแจแจแ. แแแแกแแแแแก, แ แแ แกแแกแขแแแ แแแซแฃแแแก แแแฌแแ แแก แแแแแชแแแแแ แแแกแแแ, แฃแแแ แแฅแแแก แแแแแงแแแแแฃแแ แแแแแขแแแแแ แแแฅแแแแแแแแ.
แแแแแแแ, แแก แแแกแแแ แแ แแก แจแแแแจแแแแแแก แแ แแแแแแแแ, แ แแแแแแช แแฎแแแ แแแแก, แ แแช แแแกแฌแแแแ แฉแแแแแแก แกแแแแขแแ แแกแ แแแแแแ. แแฃ แซแแแแแ แแแแแแ แแแกแแฃแแ แแแ แงแแแแแแ แแแแจแแแแแแแแแแ, แแแแแแแก, แ แแ แแแแแชแแแแ แแแแ แแแ แจแแแแฎแแแก แแ แแแแแแแแแกแแแแก, แแฅแแแ แฃแแแ แแแแแแงแแแแ แแ แซแแแแแ fdatasync()
แแ แแแฎแกแแแแ แคแแแแแแ แแ แแจแแ O_DSYNC
. แแฃ แแแแแขแแ แแกแแแ แแแขแ แแแแแแ แแแแก แจแแกแแฎแแ, แแฃ แ แ แแแแ แแแแ แแแแแชแแแแแก แแแแแแแ แแแกแแแแแ แแแแแแแ แแแแแ, แแแแแฎแแแแ
Write() แคแฃแแฅแชแแแก แแแแแงแแแแแแก แแแแแกแแแฃแ แแแแแ
แกแแกแขแแแฃแ แ แแแ แ write()
แกแขแแแแแ แขแจแ แแแแกแแแฆแแ แฃแแ write()
แแแแแชแแแแ แฌแแแแแฎแแแก แแแแ แแชแแแแแ แฃแแแ แแแแแ แฃแแแก แแฃแกแขแแ แแก แแแแขแแแ, แ แแแแแแแช แแแ แ แแงแ แแแฌแแ แแแ, แแแจแแแแช แแ, แแฃ แแแแแชแแแแแแ แฌแแแแแ แฎแแแแ แกแฎแแ แแ แแชแแกแแแแแแ แแ แซแแคแแแแแแ (
แแแจแแแแก แแฃ แแ แ แแก แแแแ แแชแแแก write()
แแขแแแฃแ แแ? แขแแฅแแแแฃแ แ แแแแแกแแแ แแกแแ, แแแแฎ. แแแแแชแแแแแแก แฌแแแแแฎแแแก แแแแ แแชแแแแแ แฃแแแ แแแแแ แฃแแแก แงแแแแแคแแ แ แแ แแ แชแแ แแ, แ แแแแแแแช แแแแฌแแ แ write()
. แแแแ แแ แแแแ แแชแแ write()
แกแขแแแแแ แขแแก แจแแกแแแแแแกแแ, แแ แฃแแแ แแแกแ แฃแแแแก, แฉแแฌแแ แแ แงแแแแแคแแ แ, แ แแกแ แฉแแฌแแ แแกแแช แกแแฎแแแแแแ. แแแกแแจแแแแแ แแแแแชแแแแแแก แแฎแแแแ แแแฌแแแแก แฉแแฌแแ แ. แแแแแแแแแ, แฉแแแ แจแแแซแแแแ แแแฅแแแแแก แแ แ แแแแแแ, แ แแแแแแแแแ แแแแแแฃแแ 1024 แแแแขแ แแแแขแแแก แคแแแแก, แ แแแแแแช แแฆแฌแแ แแแแ แแแแแ แคแแแแแก แแฆแฌแแ แแ. แกแขแแแแแ แขแแก แแแแแกแแแ แแกแแ, แจแแแแแ แแแกแแฆแแแ แแฅแแแแ, แ แแแแกแแช แฉแแฌแแ แแก แแแแแแฃแ แแแแ แแชแแแก แจแแฃแซแแแ แคแแแแจแ แแฎแแแแ แแ แแ แแแแขแแก แแแแแขแแแ. แแก แแแแ แแชแแแแ แแแ แฉแแแ แแขแแแฃแ แ, แแแแ แแ แแแแ แแแกแ แฃแแแแแก แจแแแแแ, แคแแแแจแ แฉแแฌแแ แแแ แแแแแชแแแแแ แจแแ แแฃแแ แแฅแแแแ.
fsync() แแ fdatasync() แคแฃแแฅแชแแแแ
แแแแแชแแแแ แแแกแแแ แแแแแขแแแแก แฃแแแ แขแแแแกแ แแแ แแ แแก แคแฃแแฅแชแแแก แแแแแซแแฎแแแ fdatasync()
. In fdatasync()
แแแกแจแ แแแแฅแแแแแ, แ แแ แแ แคแฃแแฅแชแแแก แแฃแจแแแแแก แแ แแก, แแแขแแแแแแชแแแแแแก แแกแแแ แ แแแแแแแแ แแแแฎแแแ แแแกแแแ, แ แแช โแแฃแชแแแแแแแแ แแแแแชแแแแ แฌแแแแแฎแแแก แจแแแแแแ แแแแ แแชแแแแแก แกแฌแแ แแ แจแแกแ แฃแแแแแกแแแแกโ. แแ แแก แแ แแก แแฃแกแขแแ แแก, แ แแช แแแแแแแชแแแแแก แฃแแแขแแกแแแแก แแแแขแแ แแกแแแก.
แแ แแ แแ แแแแแแ, แ แแแแแแช แจแแแซแแแแ แฌแแ แแแแจแแแก แแฅ แแ แแก แแก, แ แแ แแก แแแฅแแแแแแแแ แแ แแซแแแแ แแแ แแแขแแแก, แ แแ แคแแแแแก แแแแแ แจแแกแแซแแแแแแแ แจแแกแแซแแ แฌแแ แฃแแแขแแแแแแแก แจแแแแแ. แแแ แซแแ, แ แแแแกแแช แแฅแแแแแ แแฎแแแ แคแแแแ, แฃแแแ แแแ แแแแ fsync()
แแแ แแฅแขแแ แแแจแ, แ แแแแแแช แจแแแชแแแก แแแก. แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ, แแแแ แแแก แจแแแแแ, แจแแแซแแแแ แแฆแแแฉแแแแก, แ แแ แแก แคแแแแ แแ แแ แกแแแแแก. แแแแก แแแแแแ แแก แแ แแก, แ แแ UNIX-แแก แแแ แแแแแจแ, แแงแแ แ แแแฃแแแแแก แแแแแงแแแแแแก แแแแ, แคแแแแ แจแแแซแแแแ แแ แกแแแแแแแก แแ แแแแ แแแ แแฅแขแแ แแแจแ. แแแแขแแ แแแ แแแแแกแแก fsync()
แแ แแ แกแแแแแก แกแแจแฃแแแแแ, แ แแ แคแแแแแ แแชแแแแก, แ แแแแแ แแแ แแฅแขแแ แแแก แแแแแชแแแแแ แแกแแแ แฃแแแ แแแแ แแชแฎแแก แแแกแแแ (fsync()
แแแ แแฅแขแแ แแแจแ, แ แแแแแแช แจแแแชแแแก แจแแกแแแแแแก แคแแแแแแก, แแแแ แแ แแก แจแแแซแแแแ แแ แแงแแก แกแฎแแ แคแแแแฃแ แ แกแแกแขแแแแแแก แจแแแแฎแแแแแจแ.
แแก แแแฅแแแแแแ แจแแแซแแแแ แแแแกแฎแแแแแแฃแแแ แแแแฎแแ แชแแแแแแก แกแฎแแแแแกแฎแแ แคแแแแฃแ แกแแกแขแแแแจแ. แแ แแแแแแแงแแแ fdatasync()
แชแแขแ แฃแคแ แ แกแฌแ แแคแแ fsync()
. แแแแฃแแแแฃแ แ blktrace
แแแฃแแแแแแก แแแแแ fdatasync()
แฉแแแฃแแแแ แแ แฌแแ แก แแแแแแ แแแแแชแแแก แแแกแแแ (ext4 fsync()
แฌแแ แก 20 KiB แแ fdatasync()
- 16 KiB). แแกแแแ, แแแแแ แแแแ, แ แแ XFS แแแแแ แฃแคแ แ แกแฌแ แแคแแ แแแแ แ ext4. แแ แแฅ แแแฎแแแ แแแแ blktrace
แแแแก แแแ แแแแแ แจแแซแแ fdatasync()
แแคแ แฅแแแแก แแแแแแ แแแแแชแแแก แแแกแแแ (4 KiB XFS-แจแ).
แแ แแแ แแแแแ แกแแขแฃแแชแแแแ fsync() แแแแแงแแแแแแกแแก
แแ แจแแแแซแแแ แแแคแแฅแ แ แกแแ แแ แแแ แแแแ แกแแขแฃแแชแแแแ fsync()
แ แแช แแ แแฅแขแแแแจแ แจแแแฎแแแแ แแ.
แแแ แแแแ แแกแแแ แจแแแแฎแแแแ 2008 แฌแแแก แแแฎแแ. แแ แแ แแก, Firefox 3-แแก แแแขแแ แคแแแกแ "แแแงแแแฃแแ" แแงแ, แแฃ แคแแแแแแแก แแแแ แ แแแแแแแแ แแฌแแ แแแแแ แแแกแแแ. แแ แแแแแแ แแก แแงแ, แ แแ แแแขแแ แคแแแกแแก แแแแฎแแ แชแแแแแแแกแแก แแแแแแงแแแแแแแ SQLite แแแแแชแแแแ แแแแ แแแกแ แแแแแแแ แแแแแก แจแแกแแฎแแ แแแคแแ แแแชแแแก แจแแกแแแแฎแแ. แแแขแแ แคแแแกแจแ แแแแฎแแแ แ แงแแแแแ แชแแแแแแแแก แจแแแแแ, แคแฃแแฅแชแแ แแแแแแซแแฎแแแแแ fsync()
, แ แแช แแซแแแแ แแแแแชแแแแ แกแขแแแแแฃแ แ แจแแแแฎแแแก แแแ แ แแแ แแแขแแแก. แจแแแแแ แแแแแงแแแแแฃแ ext3 แคแแแแฃแ แกแแกแขแแแแจแ แคแฃแแฅแชแแ fsync()
แแแ แแชแฎแแแแ แกแแกแขแแแแก แงแแแแ "แแแแซแฃแ แ" แแแแ แแแก แแแกแแแ แแ แแ แ แแฎแแแแ แแก, แ แแช แแแแแแจแแ แแแฃแแ แแงแ แจแแกแแแแแแก แคแแแแแแ. แแก แแแจแแแแก, แ แแ Firefox-แจแ แฆแแแแแแ แแแฌแแแแฃแแแแแ แจแแแซแแแแ แแแแแแฌแแแแก แแแแแแแแขแแแแก แแแแแชแแแแแแก แฉแแฌแแ แ แแแแแแขแฃแ แแแกแแแ, แ แแกแแช แจแแแซแแแแ แแ แแแแแ แฌแแแ แแแกแญแแ แแแก. แแ แแแแแแแก แแแแแฌแงแแแขแ, แ แแแแแแแแแช แแ แแแแฎแแแ
แแแแ แ แแ แแแแแแ 2009 แฌแแแก แแแฎแแ. แจแแแแแ, แกแแกแขแแแแก แแแแ แแแก แจแแแแแ, แแฎแแแ ext4 แคแแแแฃแ แ แกแแกแขแแแแก แแแแฎแแแ แแแแแแแ แแฆแแแแฉแแแแก, แ แแ แแแแ แ แแฎแแแ แจแแฅแแแแแ แคแแแแ แแงแ แแฃแแแแแแ แกแแแ แซแแก, แแแแ แแ แแก แแ แแแแฎแแแ แ แซแแแ ext3 แคแแแแฃแ แกแแกแขแแแแกแแแ. แฌแแแ แแแแแชแจแ แแ แแแกแแฃแแ แ แแแแแ, แแฃ แ แแแแ แแแแแแแแ ext3-แแ แซแแแแแ แแแแ แ แแแแแชแแแ แแแกแแแ, แ แแแแช แแแแ แ แ แแ แจแแแแแแ. fsync()
. แกแแขแฃแแชแแแก แแแกแแฃแแฏแแแแกแแแแแ, ext4 แแกแฃแคแแแแแแก แแฎแแแแ แแ โแแแแซแฃแ โ แแแแ แแแแก, แ แแแแแแแช แแฎแแแ แแแแแ แแขแฃแ แคแแแแก. แแ แกแฎแแ แคแแแแแแแก แแแแแชแแแแแ แแแฎแกแแแ แแแแจแ แแแชแแแแแแ แแแแฎแแแก แ แฉแแแ แแแแ แ ext3. แแก แแแแแแแ แจแแกแ แฃแแแแแก แแแกแแฃแแฏแแแแกแแแแแ (แแแแฃแแแกแฎแแแแแ, แแแแแชแแแแแ แแ แแแแแแแ แแแแแจแ แ แฉแแแ 30 แฌแแแแก แแแแแแแแแแแจแ, แจแแแแซแแแแ แแแแก แแแแคแแแฃแ แแชแแ fsync()
แแแแแแแชแแแแจแ, แ แแแแแแแแช แฃแแแ แฃแแ แฃแแแแแงแแ แแแแแชแแแแ แกแขแแแแแฃแ แ แจแแแแฎแแ แแ แแแฅแกแแแแแฃแ แแ แแแแชแแแ แแกแแแ แฌแแ แฃแแแขแแแแแแแก แจแแแแแแแแกแแแ. แคแฃแแฅแชแแ fsync()
แแแแ แแ แฃแคแ แ แแคแแฅแขแฃแ แแ แแฃแจแแแแก ext4-แแ, แแแแ แ ext3-แแ. แแ แแแแแแแแก แแแแฃแกแ แแก แแ แแก, แ แแ แแแกแ แแแแแงแแแแแ, แ แแแแ แช แแแ แ, แแแแแแแก แแแแแแ แ แแแแ แแชแแแก, แ แแแแ แแชแแ แแ แแแ แแแแแแก แแแงแแแแแ. แแฎแแแแ แแแขแแแแแ แแแแก แจแแกแแฎแแ
แแแกแแแ แแ แแแแแแ แ แแช แจแแแฎแแแ fsync()
, แฌแแ แแแแจแแ 2018 แฌแแแก. แจแแแแแ PostgreSQL แแ แแแฅแขแแก แคแแ แแแแแจแ แแแแ แแแ, แ แแ แแฃ แคแฃแแฅแชแแ fsync()
แฎแแแแแ แจแแชแแแแแก, แแก แแฆแแแจแแแแก "แแแแซแฃแ " แแแแ แแแแก "แกแฃแคแแ". แจแแแแแแ, แจแแแแแแ แแแ แแแ fsync()
แแ แแคแ แแก แแแแแแแแ แแกแแ แแแแ แแแแแแ. แแแแก แแแแ, แจแแชแแแแแ แแแแ แแแแ แแแแฎแแแ แแแฎแกแแแ แแแแจแ แแ แแ แแกแแแแก แแฌแแ แแแ แแแกแแแ. แแก แแแแแแแแ แแแขแแกแขแ แแคแแ, แ แแแแแ แแแแแแแชแแ แแคแแฅแ แแแก, แ แแ แแแแแแ แแ แแแแแชแแแ แฉแแฌแแ แแแแ แแแกแแแ, แแแแ แแ แกแแแแแแแแแแจแ แแกแ แแ แแฅแแแแ. แแกแแแ แฌแแ แฃแแแขแแแแแแแแ fsync()
แแจแแแแแแ, แแกแแ แกแแขแฃแแชแแแแจแ แแแแแแแชแแแก แแแแฅแแแก แแ แแคแ แแก แแแแแแแแ แจแแฃแซแแแ แแ แแแแแแแก แฌแแแแแฆแแแแ แกแแแ แซแแแแแแแ. แแ แแฆแแแแจแ, แ แแแแกแแช แแก แฎแแแแ, PostgreSQL แแ แกแฎแแ แแแแแแแชแแแแ แแจแแแแ. O_SYNC
แแ แแ แแจแแ O_DSYNC
. แแ แแแแแแแแ, แกแแกแขแแแ แจแแแขแงแแแแแแแก แจแแชแแแแแแก, แ แแแแแแแช แจแแแซแแแแ แแแฎแแแก แแแแแชแแแแ แฉแแฌแแ แแก แแแแแ แแขแฃแแ แแแแ แแชแแแแแก แจแแกแ แฃแแแแแกแแก, แแแแ แแ แแก แแแแแแแ แแแแแฎแแแก, แ แแ แแแแแแแชแแ แแแแแ แแแ แแแก แแฃแคแแ แแแ. แฌแแแแแแฎแแ แแแขแ แแแแก แจแแกแแฎแแ
แคแแแแแแแก แแแฎแกแแ O_SYNC แแ O_DSYNC แแ แแจแแแแก แแแแแงแแแแแแ
แแแแแ แแแแฃแแ แฃแแแแ Linux แแแฅแแแแแแแแแก แแแแฎแแแแแก, แ แแแแแแแช แฃแแ แฃแแแแแงแแคแแ แแแแแชแแแแ แแฃแแแแ แจแแแแฎแแแก. แแแ แซแแ, แกแแฃแแแ แแ แแ แแจแแก แแแแแงแแแแแแแ O_SYNC
แแ แแ แแจแ O_DSYNC
แคแแแแแแแก แแแฎแกแแแกแแก แกแแกแขแแแฃแ แ แแแ แแก แแแแแงแแแแแแ write()
แกแแกแขแแแแก แแซแแแแ, แจแแกแแแแแแกแแ, แแ แซแแแแแแแ fsync()
ะธ fdatasync()
. In write()
ะธ fdatasync()
). แแ แแแแแแแแก แแแแแแ แ แแแแฃแกแ แแ แแก แแก, แ แแ แฉแแฌแแ แแก แงแแแแ แแแแ แแชแแ แจแแกแแแแแแกแ แคแแแแแก แแฆแฌแแ แแก แแแแแงแแแแแแ แแฅแแแแ แกแแแฅแ แแแแแแแฃแแ, แ แแแแช แจแแแซแแแแ แจแแแฆแฃแแแก แแแแแชแฎแแแแก แแแแแก แกแขแ แฃแฅแขแฃแ แแ แแแแก แจแแกแแซแแแแแแแ.
แแแ แแแแแ แ I/O แแแแแงแแแแแ O_DIRECT แแ แแจแแ
แกแแกแขแแแฃแ แ แแแ แ open()
แแฎแแ แก แฃแญแแ แก แแ แแจแแก O_DIRECT
, แ แแแแแแช แจแแฅแแแแแแ แแแแ แแชแแฃแแ แกแแกแขแแแแก แฅแแจแแก แแแแ แแแก แแแแแ, I/O แแแแ แแชแแแแแก แจแแกแแกแ แฃแแแแแแ, แฃแจแฃแแแแ แแแกแแแแ แฃแ แแแแ แแฅแแแแแแแกแแแแก. แแก, แฎแจแแ แจแแแแฎแแแแแจแ, แแแจแแแแก, แ แแ แแ แแแ แแแแก แแแแ แแแชแแแฃแแ แฉแแฌแแ แแก แแ แซแแแแแแแ แแแ แแแแแ แแแแแแแแ แแแแแแ แแแกแแแแ แแฃแจแแแแแกแแแ แแแแแ แแฃแ แแ แซแแแแแแแแ. แแแแ แแ, แแแแแแแ, แแก แแแฅแแแแแแ แแ แแ แแก แคแฃแแฅแชแแแแแก แจแแแชแแแแแ fsync()
แแ fdatasync()
. แคแแฅแขแแ, แ แแ แแแแแ แแแกแแก แจแแฃแซแแแ O_DIRECT
, O_DSYNC
, แ แแช แแแจแแแแก, แ แแ แฉแแฌแแ แแก แแแแแแฃแ แแแแ แแชแแแก แแแฐแงแแแแ แแแ แ fdatasync()
.
แแฆแแแฉแแแ, แ แแ XFS แคแแแแฃแ แกแแกแขแแแแก แแฎแแแฎแแ แแแแแแขแ "แกแฌแ แแคแ แแแ". O_DIRECT|O_DSYNC
- แแแแแชแแแแ แฉแแแแฌแแ แแแ. แแฃ แแแแแ แแแแแฌแแ แแแแ แแแแแงแแแแแแ O_DIRECT|O_DSYNC
, แจแแแแแ XFS, แฅแแจแแก แแแแแ แแชแฎแแแก แแแชแแแแ, แจแแแกแ แฃแแแแก FUA แฉแแฌแแ แแก แแ แซแแแแแแก, แแฃ แแแฌแงแแแแแแแ แแฎแแ แก แฃแญแแ แก แแแก. แแ แจแแแแแแฌแแ แแก แฃแขแแแแขแแก แแแแแงแแแแแแ blktrace
Linux 5.4/Ubuntu 20.04 แกแแกแขแแแแแ. แแก แแแแแแแ แฃแคแ แ แแคแแฅแขแฃแ แ แฃแแแ แแงแแก, แ แแแแแ แแก แฌแแ แก แแแแแชแแแแ แแแแแแแแฃแ แ แแแแแแแแแก แแแกแแแ แแ แแงแแแแแก แแ แ แแแแ แแชแแแก แแ แแ แ แแ แก (แฅแแจแแก แฉแแฌแแ แ แแ แแแแฆแแแ). แแแแแแ แแแฃแแ
sync_file_range() แคแฃแแฅแชแแ
Linux-แก แแฅแแก แกแแกแขแแแฃแ แ แแแ แ sync_file_range()
แแแแฅแแแแแ, แ แแ แแก แแ แซแแแแแ "แซแแแแแ แกแแจแแจแแ". แแ แแ แแก แ แแแแแแแแแแฃแแ แแแกแ แแแแแงแแแแแ. แแแฎแแกแแแแแแแแแ แแ แกแแคแ แแฎแแแแ sync_file_range()
แซแแแแแ แแแ แแแ แแ แแก แแฆแฌแแ แแแ fdatasync()
. In sync_file_range()
ZFS-แแก แแแแแงแแแแแแกแแก แแ แแกแฃแคแแแแแแก แแแแแชแแแแแก แแแกแแแ. แแแแแชแแแแแแ แแแฃแแแแแ, แ แแ แแจแแแแแแ แแแแแงแแแแแฃแแ แแแแ แจแแแซแแแแ แจแแแชแแแแแก แจแแชแแแแแแก. แแแแขแแ, แแ แแแ แฉแแแ, แแ แแแแแแงแแแแ แแก แกแแกแขแแแฃแ แ แแแ แ, แแฃ แแแกแแแฃแขแฃแ แแ แแฃแชแแแแแแแ แแ แแ แแก.
แกแแกแขแแแฃแ แ แแแ แแแ แแแแแชแแแแ แแแแ แแแแแแก แฃแแ แฃแแแแแกแแงแแคแแ
แแ แแแแแแ แแแกแแแแแแแ, แ แแ แแ แกแแแแแก แกแแแ แแแแแแแ, แ แแแแแแช แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แแฃแแแแแ I/O แแแแ แแชแแแแแก แจแแกแแกแ แฃแแแแแแ. แงแแแแ แแแแแแแก แกแญแแ แแแแ แคแฃแแฅแชแแแก แแแแแซแแฎแแแ fsync()
แแ แแแ แแฅแขแแ แแแกแแแแก, แกแแแแช แคแแแแ แจแแแฅแแแ. แแก แแ แแก แแแแแแแแแ:
- แคแฃแแฅแชแแแก แแแแแซแแฎแแแ
fdatasync()
แแfsync()
แคแฃแแฅแชแแแก แจแแแแแwrite()
(แฃแแฏแแแแกแแ แแแแแแงแแแแfdatasync()
). - แแ แแจแแ แแแฎแกแแแแ แคแแแแแก แแฆแฌแแ แแ แแฃแจแแแแ
O_DSYNC
แแO_SYNC
(แฃแแแแแกแ - แแ แแจแแO_DSYNC
). - แแ แซแแแแแแก แแแแแงแแแแแ
pwritev2()
แแ แแจแแRWF_DSYNC
แแRWF_SYNC
(แกแแกแฃแ แแแแแ แแ แแจแแRWF_DSYNC
).
แจแแกแ แฃแแแแแก แจแแแแจแแแแแ
แแ แแฃแแแแกแแแ แแ แแแแแแแ แฉแแแก แแแแ แแแแแแแแแฃแแ แกแฎแแแแแกแฎแแ แแแฅแแแแแแแแแก แแแฅแแแแแแ. แแแแกแฎแแแแแแแแ, แ แแช แแ แจแแแแแจแแ แแแแ แแฃแจแแแแแก แกแแฉแฅแแ แแจแ, แซแแแแแ แแชแแ แแ. แแก แแแจแแแแก, แ แแ แแ แจแแแซแแแแ แแชแแแแแแ แแ แ แแ แกแฎแแ แแแ แแแแแจแ แแแแแ แจแแแซแแแแ แแฉแแแแแก แแแแกแฎแแแแแแฃแแ แจแแแแแแแ. แแแ แแแ แ แแแจแ, แแ แแแกแแฃแแ แแ แแแแแ, แแฃ แ แ แแแแแแแแก แแฎแแแแก แจแแกแ แฃแแแแแแ แฃแคแ แ แแแขแแ, แจแแแแแ แแ แแแแแ, แแฃ แ แ แแแแแแแแก แแฎแแแแก แจแแกแ แฃแแแแแแ แแแแแแแแ.
- แคแแแแแก แแแแแชแแแแแแก แแแแแฌแแ แ แฃแคแ แ แกแฌแ แแคแแ, แแแแ แ แคแแแแแ แแแแแชแแแแแแก แแแแแขแแแ (แแคแแฅแขแฃแ แแแแก แแแแแขแแแ แจแแแซแแแแ แแงแแก 2-100%). แคแแแแแ แแแแแชแแแแแแก แแแแแแ แแแ แแแแแฎแแแก แแแแแขแแแแ แชแแแแแแแแแก แคแแแแแก แแแขแแแแแแชแแแแแจแ, แกแแกแขแแแฃแ แ แแแ แแก แจแแแแแแแช แแ
fallocate()
, แแแแ แแ แแ แแคแแฅแขแแก แกแแแแแ แจแแแซแแแแ แแแแกแฎแแแแแแแแแแก. แกแแฃแแแแแกแ แจแแกแ แฃแแแแแกแแแแก แแแ แฉแแแ แแแ แแแแfallocate()
แกแแญแแ แ แคแแ แแแก แฌแแแแกแฌแแ แแแแแงแแคแแก. แแแจแแ แแก แกแแแ แชแ แแจแแแ แแ แฃแแแ แจแแแแกแแก แแฃแแแแแ แแ แแแแแแซแแฎแแกfsync()
. แแก แแแแแแฌแแแแก แคแแแแฃแ แกแแกแขแแแแจแ แจแแกแแแแแแกแ แแแแแแแแก แแแแแจแแแแก, แ แแแแ แช "แแแแแงแแคแแแ" แแแชแแแแ "แแแฃแแแฌแแแแแแแ". แแก แแซแแแแ แแชแแ แ (แแแแฎแแแแแแ 2%) แจแแกแ แฃแแแแแก แแแฃแแฏแแแแกแแแแก. แแกแแแ, แแแแแแ แ แแแกแแก แจแแแซแแแแ แฐแฅแแแแแก แฃแคแ แ แแแแ แแแ แแแแ แแแแแแก แฌแแแแแแก แแแแ แแชแแ, แแแแ แ แกแฎแแแแก. แแก แแแจแแแแก, แ แแ แกแแแ แชแแก แแฃแแแแแ แจแแแกแแแแ แจแแแซแแแแ แแแแแแฌแแแแก แแฃแจแแแแแก แแแแจแแแแแแแแแ (แแแแฎแแแแแแ 100%) แแแฃแแฏแแแแกแแแ. แแแ แซแแ, แแก แจแแแซแแแแ แแแฎแแแก แแแกแแแแแแ.AWS EBS (แแก แแ แแแคแแชแแแแฃแ แ แแแแแชแแแแแแ, แแแ แแแแแแแกแขแฃแ แ). แแแแแ แแฎแแแ แจแแแแฎแแแก.GCP แแฃแแแแแ แแแกแแ (แแ แแก แฃแแแ แแคแแชแแแแฃแ แ แแแคแแ แแแชแแแ, แแแแแกแขแฃแ แแแฃแแ แขแแกแขแแแแ). แกแฎแแ แแฅแกแแแ แขแแแแแช แแแแแ แแแแแแแแกแแแแแแ แแแแแแ แแแแแแจแแ แแแฃแแแ แกแฎแแแแแกแฎแแ แแแกแแแแแแ. - แ แแช แฃแคแ แ แแแแแแแ แกแแกแขแแแฃแ แ แแแแแซแแฎแแแแ, แแแ แฃแคแ แ แแแฆแแแแ แจแแกแ แฃแแแแ (แแแแแขแแแ แจแแแซแแแแ แแงแแก แแแแฎแแแแแแ 5%). แแแ แก แฐแแแแก
open()
แแ แแจแแO_DSYNC
แแ แแแ แแแแpwritev2()
แแ แแจแแRWF_SYNC
แฃแคแ แ แกแฌแ แแคแ แแแ แfdatasync()
. แแแแญแแแแ, แ แแ แแฅ แกแแฅแแ แแแแจแแ, แ แแ แแ แแแแแแแแ, แ แแแก แแแแแจแแแก แแก แคแแฅแขแ, แ แแ แแแแแแแ แกแแกแขแแแฃแ แ แแแ แ แฃแแแ แแแแฎแแ แชแแแแแแก แแ แแ แแ แแแแแ แแแแชแแแแก แแแแแกแแญแ แแแแ (แแ แแ แแแ แ แแ แแก แแแชแแแแ). แแแแ แแ แจแแกแ แฃแแแแแก แกแฎแแแแแ แซแแแแแ แแชแแ แแ, แแกแ แ แแ แแฅแแแ แจแแแแซแแแแ แแแ แขแแแแ แฃแแฃแแแแแแงแแ แแแ แแ แแแแแแงแแแแ แแแแแแแชแแแจแ แแกแแแ แ แแ, แ แแช แแ แแฌแแแแก แแแกแ แแแแแแแก แแแ แแฃแแแแแก.
แแฃ แแแแแขแแ แแกแแแ แแแแแชแแแแ แแแแ แแแ แจแแแแฎแแแก แแแแ, แแฅ แแแชแแแฃแแแ แ แแแแแแแแ แกแแกแแ แแแแแ แแแกแแแ:
I/O แฌแแแแแแก แแแแแแแแ โ แจแแงแแแแแก/แแแแแแแแแแ แแแฅแแแแแแแแแก แกแแคแฃแซแแแแแแก แแแแแฎแแแแ.แฃแแ แฃแแแแแงแแก แแแแแชแแแแแ แแแกแแแ - แแแแแแ แแแแก แจแแกแแฎแแ, แแฃ แ แ แแแแ แแแแ แแแแแชแแแแแก แแแแแแแชแแแแแ แแแกแแแแแ แแแแแ.แ แแแแก แฃแแแ แแแแกแแแฅแ แแแแ แจแแแชแแแแ แแแ แแฅแขแแ แแ - แแแกแฃแฎแ แแแแฎแแแแ, แ แแแแก แฃแแแ แแแแแ แแแfsync()
แแแ แแฅแขแแ แแแแแกแแแแก. แแแแแแ, แแแแแแแก, แ แแ แแก แฃแแแ แแแแแแแแ แแฎแแแ แคแแแแแก แจแแฅแแแแกแแก แแ แแ แ แแแแแแแแแชแแแก แแแแแแ แแ แแก แแก, แ แแ Linux-แจแ แจแแแซแแแแ แแงแแก แแแแ แ แแแแแแแแ แแแแแ แคแแแแแ.SQL แกแแ แแแ แ Linux-แแ: FUA Internals - แแฅ แแ แแก แแฆแฌแแ แ, แแฃ แ แแแแ แฎแแ แชแแแแแแแ แแแแแชแแแแ แแฃแแแแแ แจแแแแฎแแ SQL Server-แจแ Linux แแแแขแคแแ แแแแ. แแฅ แแ แแก แ แแแแแแแแ แกแแแแขแแ แแกแ แจแแแแ แแแ Windows แแ Linux แกแแกแขแแแแก แแแ แแแก แจแแ แแก. แแแแฅแแแก แแแ แฌแแฃแแแแฃแแ แแแ , แ แแ แกแฌแแ แแ แแ แแแกแแแแก แฌแงแแแแแแ แแแแแแ XFS-แแก FUA แแแขแแแแแแชแแแก แจแแกแแฎแแ.
แแแแกแแ แแแแแ แแแ แแแแแชแแแแแ, แ แแแแแแแช แคแแฅแ แแแแแ, แ แแ แฃแกแแคแ แแฎแแ แแงแ แจแแแแฎแฃแแ แแแกแแแ?
แฌแงแแ แ: www.habr.com