แƒ’แƒแƒ›แƒซแƒšแƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ แƒ“แƒ Linux แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก API

แƒ›แƒ”, แƒ•แƒ˜แƒ™แƒ•แƒšแƒ”แƒ•แƒ“แƒ˜ แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒจแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒกแƒขแƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒแƒ‘แƒแƒก, แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ” แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ—แƒแƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ, แƒ แƒแƒ—แƒ แƒ“แƒแƒ•แƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ”, แƒ แƒแƒ› แƒ›แƒ”แƒกแƒ›แƒ˜แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ แƒแƒ›. แƒ›แƒ” แƒ“แƒแƒ˜แƒฌแƒงแƒ NVMe แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒ— แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ’แƒแƒ•แƒ˜แƒ’แƒแƒ—, แƒ แƒ แƒ’แƒแƒ แƒแƒœแƒขแƒ˜แƒ”แƒ‘แƒก แƒ’แƒ•แƒแƒซแƒšแƒ”แƒ•แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒ“แƒ’แƒ แƒแƒ“แƒแƒ‘แƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ— (แƒแƒœแƒฃ แƒ’แƒแƒ แƒแƒœแƒขแƒ˜แƒ”แƒ‘แƒ˜, แƒ แƒแƒ› แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒฃแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’) แƒ’แƒ•แƒแƒซแƒšแƒ”แƒ•แƒก NMVe แƒ“แƒ˜แƒกแƒ™แƒ”แƒ‘แƒก. แƒ›แƒ” แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ” แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ”แƒ‘แƒ˜: แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒแƒ— แƒ“แƒแƒ–แƒ˜แƒแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒชแƒ”แƒ›แƒ˜แƒก แƒ›แƒแƒ›แƒ”แƒœแƒขแƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒกแƒแƒœแƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒ”แƒœ แƒจแƒ”แƒกแƒแƒœแƒแƒฎ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก. แƒ—แƒฃแƒ›แƒชแƒ, แƒฃแƒ›แƒ”แƒขแƒ”แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒจแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ”แƒ‘แƒ˜ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“.

แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ›แƒ” แƒ•แƒ˜แƒ™แƒ•แƒšแƒ”แƒ• Linux แƒคแƒแƒ˜แƒšแƒ˜แƒก API-แƒ”แƒ‘แƒ˜แƒ— แƒ›แƒแƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒš แƒ›แƒ“แƒ’แƒ แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ”แƒ‘แƒก. แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒแƒฅ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก: แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒฃแƒฌแƒแƒ“แƒ”แƒ‘แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒก write()แƒ“แƒ แƒแƒ› แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ“ แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒ“แƒ˜แƒกแƒ™แƒ–แƒ”. แƒ›แƒแƒ’แƒ แƒแƒ› write() แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒก RAM-แƒจแƒ˜ แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ” แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒฅแƒ”แƒจแƒจแƒ˜. แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒแƒ˜แƒซแƒฃแƒšแƒแƒก แƒ“แƒแƒฌแƒ”แƒ แƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ–แƒ”, แƒฃแƒœแƒ“แƒ แƒ˜แƒฅแƒœแƒแƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ”แƒ‘แƒ˜.

แƒ’แƒแƒ›แƒซแƒšแƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ แƒ“แƒ Linux แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก API

แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒ”แƒก แƒ›แƒแƒกแƒแƒšแƒ แƒแƒ แƒ˜แƒก แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ—แƒแƒ‘แƒšแƒ˜แƒแƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ”แƒฎแƒ”แƒ‘แƒ แƒ˜แƒ›แƒแƒก, แƒ แƒแƒช แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ” แƒฉแƒ”แƒ›แƒ—แƒ•แƒ˜แƒก แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒ—แƒ”แƒ›แƒแƒ–แƒ”. แƒ—แƒฃ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒ™แƒšแƒ”แƒ“ แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘แƒ— แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ–แƒ”, แƒ’แƒแƒ›แƒแƒ“แƒ˜แƒก, แƒ แƒแƒ› แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒ“แƒ’แƒ แƒแƒ“แƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ fdatasync() แƒแƒœ แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ˜แƒ— แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒแƒจแƒ˜แƒ— O_DSYNC. แƒ—แƒฃ แƒ’แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒ— แƒ›แƒ”แƒขแƒ˜ แƒ’แƒแƒ˜แƒ’แƒแƒ— แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ—แƒฃ แƒ แƒ แƒ”แƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒ™แƒแƒ“แƒ˜แƒ“แƒแƒœ แƒ“แƒ˜แƒกแƒ™แƒแƒ›แƒ“แƒ” แƒ›แƒ˜แƒ›แƒแƒ•แƒแƒš แƒ’แƒ–แƒแƒ–แƒ”, แƒ’แƒแƒ“แƒแƒฎแƒ”แƒ“แƒ”แƒ— แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ.

Write() แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒ•แƒ˜แƒกแƒ”แƒ‘แƒฃแƒ แƒ”แƒ‘แƒ”แƒ‘แƒ˜

แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ˜ write() แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒจแƒ˜ แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒฃแƒšแƒ˜ IEEE POSIX แƒ แƒแƒ’แƒแƒ แƒช แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ. แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒก แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ write() แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ›แƒ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒแƒก แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ˜แƒก แƒ‘แƒแƒ˜แƒขแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ“แƒ แƒ” แƒ˜แƒงแƒ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜, แƒ›แƒแƒจแƒ˜แƒœแƒแƒช แƒ™แƒ˜, แƒ—แƒฃ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒกแƒฎแƒ•แƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒแƒœ แƒซแƒแƒคแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ (แƒแƒฅ POSIX แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ). แƒแƒฅ, แƒซแƒแƒคแƒ”แƒ‘แƒ˜แƒก แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ—แƒแƒœ, แƒแƒ แƒ˜แƒก แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒœแƒแƒ—แƒฅแƒ•แƒแƒ›แƒ˜แƒ, แƒ แƒแƒ› แƒ—แƒฃ แƒแƒ แƒ˜ แƒซแƒแƒคแƒ˜ แƒ˜แƒซแƒแƒฎแƒ”แƒ‘แƒก แƒแƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก, แƒ›แƒแƒจแƒ˜แƒœ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ›แƒ แƒ–แƒแƒ แƒ›แƒ แƒแƒœ แƒฃแƒœแƒ“แƒ แƒœแƒแƒฎแƒแƒก แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒกแƒฎแƒ•แƒ แƒ–แƒแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ, แƒแƒœ แƒจแƒ”แƒ“แƒ”แƒ’แƒก แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒ•แƒ”แƒ  แƒ•แƒฎแƒ”แƒ“แƒแƒ•. แƒ”แƒก แƒ›แƒ˜แƒ•แƒงแƒแƒ•แƒแƒ แƒ— แƒ“แƒแƒกแƒ™แƒ•แƒœแƒแƒ›แƒ“แƒ”, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒ แƒคแƒแƒ˜แƒšแƒ˜แƒก I/O แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒแƒก แƒฃแƒœแƒ“แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒก แƒฉแƒแƒ™แƒ”แƒขแƒ˜แƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก.

แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก แƒ—แƒฃ แƒแƒ แƒ แƒ”แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒแƒก write() แƒแƒขแƒแƒ›แƒฃแƒ แƒ˜แƒ? แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ—แƒ•แƒแƒšแƒกแƒแƒ–แƒ แƒ˜แƒกแƒ˜แƒ—, แƒ“แƒ˜แƒแƒฎ. แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ›แƒ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒแƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒแƒœ แƒแƒ แƒชแƒ”แƒ แƒ—แƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒ—แƒแƒช แƒ“แƒแƒ˜แƒฌแƒ”แƒ แƒ write(). แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ write()แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ“แƒแƒกแƒ แƒฃแƒšแƒ“แƒ”แƒก, แƒฉแƒแƒฌแƒ”แƒ แƒ”แƒ— แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜, แƒ แƒ˜แƒกแƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒแƒกแƒแƒช แƒกแƒ—แƒฎแƒแƒ•แƒ“แƒœแƒ”แƒœ. แƒ“แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒœแƒแƒฌแƒ˜แƒšแƒ˜แƒก แƒฉแƒแƒฌแƒ”แƒ แƒ. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒ•แƒฅแƒแƒœแƒ“แƒ”แƒก แƒแƒ แƒ˜ แƒœแƒแƒ™แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒแƒ’แƒแƒœ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ 1024 แƒ‘แƒแƒ˜แƒขแƒ˜ แƒแƒ›แƒแƒขแƒ”แƒ‘แƒก แƒคแƒแƒ˜แƒšแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒ˜แƒ›แƒแƒ•แƒ” แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒ—. แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ˜แƒก แƒ—แƒ•แƒแƒšแƒกแƒแƒ–แƒ แƒ˜แƒกแƒ˜แƒ—, แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒคแƒแƒ˜แƒšแƒจแƒ˜ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒ แƒ—แƒ˜ แƒ‘แƒแƒ˜แƒขแƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ. แƒ”แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ“แƒแƒ แƒฉแƒ”แƒ‘แƒ แƒแƒขแƒแƒ›แƒฃแƒ แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ—แƒ˜ แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒคแƒแƒ˜แƒšแƒจแƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ แƒ”แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ. แƒแƒฅ แƒซแƒแƒšแƒ˜แƒแƒœ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒ“แƒ˜แƒกแƒ™แƒฃแƒกแƒ˜แƒ แƒแƒ› แƒ—แƒ”แƒ›แƒแƒ–แƒ” Stack Overflow-แƒ–แƒ”.

fsync() แƒ“แƒ fdatasync() แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜

แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ“แƒ˜แƒกแƒ™แƒ–แƒ” แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ˜แƒก แƒฃแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒกแƒ˜ แƒ’แƒ–แƒ แƒแƒ แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ fsync (). แƒ”แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒกแƒ—แƒฎแƒแƒ•แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒฃแƒš แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒก แƒ’แƒแƒ“แƒแƒ˜แƒขแƒแƒœแƒแƒก แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒšแƒ˜ แƒ‘แƒšแƒแƒ™แƒ˜ แƒฅแƒ”แƒจแƒ˜แƒ“แƒแƒœ แƒ“แƒ˜แƒกแƒ™แƒ–แƒ”. แƒ”แƒก แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒ”แƒขแƒแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก (แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒ“แƒ แƒ, แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒก แƒ“แƒ แƒ แƒ“แƒ แƒ.แƒจ.). แƒ›แƒ” แƒ›แƒฏแƒ”แƒ แƒ, แƒ แƒแƒ› แƒ”แƒก แƒ›แƒ”แƒขแƒแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ˜แƒจแƒ•แƒ˜แƒแƒ—แƒแƒ“ แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ, แƒแƒกแƒ” แƒ แƒแƒ›, แƒ—แƒฃ แƒ˜แƒชแƒ˜แƒ—, แƒ แƒแƒ› แƒ”แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ fdatasync(). In แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ on fdatasync() แƒ›แƒแƒกแƒจแƒ˜ แƒœแƒแƒ—แƒฅแƒ•แƒแƒ›แƒ˜แƒ, แƒ แƒแƒ› แƒแƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก, แƒ›แƒ”แƒขแƒแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒ“แƒ˜แƒกแƒ™แƒ–แƒ”, แƒ แƒแƒช โ€žแƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒฌแƒแƒ แƒแƒ“ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒกโ€œ. แƒ“แƒ แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ˜แƒก, แƒ แƒแƒช แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒแƒก แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒก.

แƒ”แƒ แƒ—แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฌแƒแƒ แƒ›แƒแƒ˜แƒจแƒ•แƒแƒก แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒ› แƒ”แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ”แƒ‘แƒ˜ แƒแƒ  แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒ’แƒแƒ แƒแƒœแƒขแƒ˜แƒแƒก, แƒ แƒแƒ› แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒžแƒแƒ•แƒœแƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ แƒฌแƒแƒ แƒฃแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’. แƒ™แƒ”แƒ แƒซแƒแƒ“, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒแƒฎแƒแƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜, แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ แƒ”แƒ™แƒแƒ— fsync() แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ›แƒแƒก. แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒแƒ•แƒแƒ แƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒก, แƒ แƒแƒ› แƒ”แƒก แƒคแƒแƒ˜แƒšแƒ˜ แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก. แƒแƒ›แƒ˜แƒก แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› UNIX-แƒ˜แƒก แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒจแƒ˜, แƒ›แƒงแƒแƒ แƒ˜ แƒ‘แƒ›แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒคแƒแƒ˜แƒšแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ“แƒ”แƒก แƒ›แƒ แƒแƒ•แƒแƒš แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜. แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ“แƒแƒ แƒ”แƒ™แƒ•แƒ˜แƒกแƒแƒก fsync() แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒคแƒแƒ˜แƒšแƒ›แƒ แƒ˜แƒชแƒแƒ“แƒ”แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ˜แƒ แƒ”แƒชแƒฎแƒแƒก แƒ“แƒ˜แƒกแƒ™แƒ–แƒ” (แƒแƒฅ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ”แƒขแƒ˜ แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘). แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, ext4 แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒ•แƒ แƒชแƒ”แƒšแƒ“แƒ”แƒ‘แƒ fsync() แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ  แƒ˜แƒงแƒแƒก แƒกแƒฎแƒ•แƒ แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜.

แƒ”แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒแƒ“ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜. แƒ›แƒ” แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ” blktrace แƒ’แƒแƒ˜แƒ’แƒแƒ— แƒ แƒ แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ ext4 แƒ“แƒ XFS แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒจแƒ˜. แƒแƒ แƒ˜แƒ•แƒ” แƒ’แƒแƒกแƒชแƒ”แƒ›แƒก แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒก แƒ“แƒ˜แƒกแƒ™แƒ–แƒ” แƒ แƒแƒ’แƒแƒ แƒช แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ˜แƒ’แƒ—แƒแƒ•แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒกแƒ”แƒ•แƒ” แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒŸแƒฃแƒ แƒœแƒแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒ”แƒ‘แƒก แƒฅแƒ”แƒจแƒก แƒ“แƒ แƒ’แƒแƒ›แƒแƒ“แƒ˜แƒก แƒŸแƒฃแƒ แƒœแƒแƒšแƒจแƒ˜ FUA (Force Unit Access, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒ“แƒ˜แƒกแƒ™แƒ–แƒ” แƒฉแƒแƒฌแƒ”แƒ แƒ, แƒฅแƒ”แƒจแƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒแƒ•แƒšแƒ˜แƒ—) แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒ—. แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒšแƒ‘แƒแƒ— แƒแƒ›แƒแƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ”แƒœ แƒ˜แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ“แƒแƒแƒ“แƒแƒกแƒขแƒฃแƒ แƒแƒœ แƒ’แƒแƒ แƒ˜แƒ’แƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒฅแƒขแƒ˜. แƒ“แƒ˜แƒกแƒ™แƒ”แƒ‘แƒ–แƒ”, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒแƒ  แƒแƒฅแƒ•แƒ— FUA-แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ, แƒ”แƒก แƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒฅแƒ”แƒจแƒ˜แƒก แƒแƒ  แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒแƒก. แƒฉแƒ”แƒ›แƒ›แƒ แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ›แƒ แƒแƒฉแƒ•แƒ”แƒœแƒ แƒ”แƒก 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-แƒจแƒ˜ แƒฆแƒ˜แƒšแƒแƒ™แƒ–แƒ” แƒ“แƒแƒฌแƒ™แƒแƒžแƒฃแƒœแƒ”แƒ‘แƒแƒ› แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒแƒก แƒ›แƒ”แƒ’แƒแƒ‘แƒแƒ˜แƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒฌแƒ”แƒ แƒ แƒ›แƒแƒ’แƒœแƒ˜แƒขแƒฃแƒ  แƒ“แƒ˜แƒกแƒ™แƒ–แƒ”, แƒ แƒแƒกแƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒฌแƒแƒ›แƒ˜ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒก. แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ, แƒ แƒแƒ›แƒ“แƒ”แƒœแƒแƒ“แƒแƒช แƒ›แƒ” แƒ›แƒ˜แƒ•แƒฎแƒ•แƒ“แƒ˜ แƒแƒ› แƒ›แƒแƒกแƒแƒšแƒ, แƒ˜แƒงแƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒกแƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒคแƒแƒœแƒ˜แƒก แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ–แƒ”. แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› Firefox แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ“แƒ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒ›แƒ“แƒ’แƒ แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒฃแƒคแƒ แƒ แƒ›แƒ™แƒแƒชแƒ  แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒก, แƒ•แƒ˜แƒ“แƒ แƒ” แƒ”แƒก แƒ˜แƒงแƒ แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ“แƒ ext3 แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒ›แƒซแƒแƒคแƒ แƒ”แƒ‘แƒ“แƒ แƒแƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒก.

แƒ›แƒ”แƒแƒ แƒ” แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ 2009 แƒฌแƒ”แƒšแƒก แƒ›แƒแƒฎแƒ“แƒ. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒแƒ•แƒแƒ แƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒแƒฎแƒแƒšแƒ˜ ext4 แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ›แƒ แƒแƒฆแƒ›แƒแƒแƒฉแƒ˜แƒœแƒ”แƒก, แƒ แƒแƒ› แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒแƒฎแƒšแƒแƒ“ แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜ แƒ˜แƒงแƒ แƒœแƒฃแƒšแƒแƒ•แƒแƒœแƒ˜ แƒกแƒ˜แƒ’แƒ แƒซแƒ˜แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒแƒ  แƒ›แƒแƒ›แƒฎแƒ“แƒแƒ แƒ แƒซแƒ•แƒ”แƒš ext3 แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒกแƒ—แƒแƒœ. แƒฌแƒ˜แƒœแƒ แƒแƒ‘แƒ–แƒแƒชแƒจแƒ˜ แƒ›แƒ” แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ” แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ“แƒแƒแƒ’แƒ“แƒ ext3-แƒ›แƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ–แƒ”, แƒ แƒแƒ›แƒแƒช แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ แƒแƒ› แƒจแƒ”แƒแƒœแƒ”แƒšแƒ. fsync(). แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒกแƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒšแƒแƒ“, ext4 แƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒ”แƒ‘แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒ› โ€žแƒ‘แƒ˜แƒœแƒซแƒฃแƒ โ€œ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ”แƒฎแƒ”แƒ‘แƒ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒš แƒคแƒแƒ˜แƒšแƒก. แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒจแƒ˜ แƒ’แƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ˜แƒ“แƒฎแƒแƒœแƒก แƒ แƒฉแƒ”แƒ‘แƒ แƒ•แƒ˜แƒ“แƒ แƒ” ext3. แƒ”แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒšแƒแƒ“ (แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒแƒ“, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒแƒ› แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒจแƒ˜ แƒ แƒฉแƒ”แƒ‘แƒ 30 แƒฌแƒแƒ›แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒ›แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ dirty_expire_centisecs; แƒแƒฅ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ”แƒขแƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘). แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ“แƒ˜แƒ“แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒฃแƒฅแƒชแƒ”แƒ•แƒแƒ“ แƒ“แƒแƒ˜แƒ™แƒแƒ แƒ’แƒแƒก แƒแƒ•แƒแƒ แƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’. แƒแƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ fsync() แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒจแƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ›แƒแƒช แƒฃแƒœแƒ“แƒ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒœ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒกแƒขแƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ แƒ“แƒ แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒแƒ“ แƒ“แƒแƒ˜แƒชแƒ•แƒแƒœ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฌแƒแƒ แƒฃแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒกแƒ’แƒแƒœ. แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ fsync() แƒ‘แƒ”แƒ•แƒ แƒแƒ“ แƒฃแƒคแƒ แƒ แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก ext4-แƒ˜แƒ—, แƒ•แƒ˜แƒ“แƒ แƒ” ext3-แƒ˜แƒ—. แƒแƒ› แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ˜แƒก แƒ›แƒ˜แƒœแƒฃแƒกแƒ˜ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ“แƒ แƒ”, แƒแƒœแƒ”แƒšแƒ”แƒ‘แƒก แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒแƒก, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ. แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ— แƒ“แƒ”แƒขแƒแƒšแƒ”แƒ‘แƒ˜ แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒแƒฅ ะธ แƒแƒฅ.

แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ แƒแƒช แƒจแƒ”แƒ”แƒฎแƒ”แƒ‘แƒ fsync(), แƒฌแƒแƒ แƒ›แƒแƒ˜แƒจแƒ•แƒ 2018 แƒฌแƒ”แƒšแƒก. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ PostgreSQL แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒคแƒแƒ แƒ’แƒšแƒ”แƒ‘แƒจแƒ˜ แƒ’แƒแƒ˜แƒ แƒ™แƒ•แƒ, แƒ แƒแƒ› แƒ—แƒฃ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ fsync() แƒฎแƒ•แƒ“แƒ”แƒ‘แƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก, แƒ˜แƒก แƒแƒฆแƒœแƒ˜แƒจแƒœแƒแƒ•แƒก "แƒ‘แƒ˜แƒœแƒซแƒฃแƒ " แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒก "แƒกแƒฃแƒคแƒ—แƒ". แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ–แƒแƒ แƒ”แƒ‘แƒ˜ fsync() แƒแƒ แƒแƒคแƒ แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒแƒกแƒ”แƒ— แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ—แƒแƒœ. แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒšแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ˜ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒจแƒ˜ แƒ“แƒ แƒแƒ แƒแƒกแƒแƒ“แƒ”แƒก แƒ˜แƒฌแƒ”แƒ แƒ”แƒ‘แƒ แƒ“แƒ˜แƒกแƒ™แƒ–แƒ”. แƒ”แƒก แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ˜ แƒ™แƒแƒขแƒแƒกแƒขแƒ แƒแƒคแƒแƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ˜แƒคแƒ˜แƒฅแƒ แƒ”แƒ‘แƒก, แƒ แƒแƒ› แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒ“แƒ˜แƒกแƒ™แƒ–แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜ แƒแƒกแƒ” แƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ. แƒแƒกแƒ”แƒ—แƒ˜ แƒฌแƒแƒ แƒฃแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ fsync() แƒ˜แƒจแƒ•แƒ˜แƒแƒ—แƒ˜แƒ, แƒแƒกแƒ”แƒ— แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ”แƒ‘แƒจแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒแƒ แƒแƒคแƒ แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒกแƒแƒ‘แƒ แƒซแƒแƒšแƒ•แƒ”แƒšแƒแƒ“. แƒแƒ› แƒ“แƒฆแƒ”แƒ”แƒ‘แƒจแƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ”แƒก แƒฎแƒ“แƒ”แƒ‘แƒ, PostgreSQL แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ˜แƒจแƒšแƒ”แƒ‘แƒ. แƒแƒฅแƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ โ€žแƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ—แƒฃ แƒแƒ แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒ“แƒ’แƒ”แƒœแƒ fsync-แƒ˜แƒก แƒฌแƒแƒ แƒฃแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒกแƒ’แƒแƒœ?โ€œ แƒ”แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒฌแƒแƒ•แƒšแƒ˜แƒšแƒ˜. แƒแƒ›แƒŸแƒแƒ›แƒแƒ“ แƒแƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒแƒ แƒ˜แƒก แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ แƒ˜ I/O แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒแƒจแƒ˜แƒ— O_SYNC แƒแƒœ แƒ“แƒ แƒแƒจแƒ˜แƒ— O_DSYNC. แƒแƒ› แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ˜แƒ—, แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒจแƒ”แƒแƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก, แƒ แƒแƒ› แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ—แƒแƒ•แƒแƒ“ แƒ›แƒแƒ แƒ—แƒแƒก แƒ‘แƒฃแƒคแƒ”แƒ แƒ”แƒ‘แƒ˜. แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ— แƒ›แƒ”แƒขแƒ˜ แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒแƒฅ ะธ แƒแƒฅ.

แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒฎแƒกแƒœแƒ O_SYNC แƒ“แƒ O_DSYNC แƒ“แƒ แƒแƒจแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—

แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒฃแƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ— Linux แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒ˜แƒšแƒ•แƒแƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒ”แƒœ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ• แƒจแƒ”แƒœแƒแƒฎแƒ•แƒแƒก. แƒ™แƒ”แƒ แƒซแƒแƒ“, แƒกแƒแƒฃแƒ‘แƒแƒ แƒ˜แƒ แƒ“แƒ แƒแƒจแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒ–แƒ” O_SYNC แƒแƒœ แƒ“แƒ แƒแƒจแƒ O_DSYNC แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒฎแƒกแƒœแƒ˜แƒกแƒแƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒฎแƒกแƒœแƒ (). แƒแƒ› แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ˜แƒ—, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ˜แƒกแƒ”, แƒ—แƒ˜แƒ—แƒฅแƒแƒก แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ write() แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒก แƒ”แƒซแƒšแƒ”แƒ•แƒ, แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ fsync() ะธ fdatasync(). In POSIX แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒแƒ›แƒแƒก แƒ”แƒฌแƒแƒ“แƒ”แƒ‘แƒ "แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ I/O แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒแƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ" แƒ“แƒ "แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒแƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ". แƒแƒ› แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒแƒ‘แƒ˜แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒกแƒแƒงแƒแƒคแƒแƒ“ แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒ แƒ—แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒแƒ แƒ แƒแƒ แƒ˜ (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, โˆ’ write() ะธ fdatasync()). แƒแƒ› แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ›แƒ˜แƒœแƒฃแƒกแƒ˜ แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒ› แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ แƒแƒ›แƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒแƒก แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ.

แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ แƒ˜ I/O แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ O_DIRECT แƒ“แƒ แƒแƒจแƒ˜แƒ—

แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ˜ open() แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒ“แƒ แƒแƒจแƒแƒก O_DIRECT, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜แƒ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒฅแƒ”แƒจแƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒแƒ•แƒšแƒ˜แƒ—, I/O แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒšแƒแƒ“, แƒฃแƒจแƒฃแƒแƒšแƒแƒ“ แƒ“แƒ˜แƒกแƒ™แƒ—แƒแƒœ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ”แƒก, แƒฎแƒจแƒ˜แƒ  แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ’แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒ’แƒแƒ“แƒแƒ˜แƒ—แƒแƒ แƒ’แƒ›แƒœแƒ”แƒ‘แƒ แƒ“แƒ˜แƒกแƒ™แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ™แƒ”แƒœ แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒฃแƒš แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒแƒ“. แƒ›แƒแƒ’แƒ แƒแƒ›, แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒ”แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒชแƒ•แƒšแƒ”แƒšแƒ˜ fsync() แƒแƒœ fdatasync(). แƒคแƒแƒฅแƒขแƒ˜แƒ, แƒ แƒแƒ› แƒ—แƒแƒ•แƒแƒ“ แƒ“แƒ˜แƒกแƒ™แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ“แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ แƒแƒœ แƒฅแƒ”แƒจแƒ˜ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“. แƒ“แƒ, แƒ™แƒ˜แƒ“แƒ”แƒ• แƒฃแƒคแƒ แƒ แƒฃแƒแƒ แƒ”แƒกแƒ˜, แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒ’แƒแƒœแƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒฃแƒš แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ“แƒ แƒแƒจแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ I/O แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ O_DIRECT, แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ แƒขแƒ แƒแƒ“แƒ˜แƒชแƒ˜แƒฃแƒš แƒ‘แƒฃแƒคแƒ”แƒ แƒฃแƒš แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒจแƒ˜. แƒแƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒ˜แƒก แƒฃแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒกแƒ˜ แƒ’แƒ–แƒแƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒฎแƒกแƒœแƒ”แƒšแƒแƒ“ แƒ“แƒ แƒแƒจแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ O_DSYNC, แƒ แƒแƒช แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒแƒก แƒ›แƒแƒฐแƒงแƒ•แƒ”แƒ‘แƒ แƒ–แƒแƒ แƒ˜ fdatasync().

แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ, แƒ แƒแƒ› XFS แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒก แƒแƒฎแƒšแƒแƒฎแƒแƒœ แƒ“แƒแƒ”แƒ›แƒแƒขแƒ "แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒ’แƒ–แƒ". O_DIRECT|O_DSYNC- แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ”แƒ‘แƒ˜. แƒ—แƒฃ แƒ‘แƒšแƒแƒ™แƒ˜ แƒ’แƒแƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— O_DIRECT|O_DSYNC, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ XFS, แƒฅแƒ”แƒจแƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ”แƒชแƒฎแƒ•แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“, แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒก FUA แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒก, แƒ—แƒฃ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒ›แƒแƒก. แƒ›แƒ” แƒจแƒ”แƒ•แƒแƒ›แƒแƒฌแƒ›แƒ” แƒ”แƒก แƒฃแƒขแƒ˜แƒšแƒ˜แƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— blktrace Linux 5.4/Ubuntu 20.04 แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒ–แƒ”. แƒ”แƒก แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ แƒฃแƒคแƒ แƒ แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒก แƒฌแƒ”แƒ แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ  แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒก แƒ“แƒ˜แƒกแƒ™แƒ–แƒ” แƒ“แƒ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ”แƒ แƒ— แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒแƒก แƒ“แƒ แƒแƒ แƒ แƒแƒ แƒก (แƒฅแƒ”แƒจแƒ˜แƒก แƒฉแƒแƒฌแƒ”แƒ แƒ แƒ“แƒ แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ). แƒ•แƒ˜แƒžแƒแƒ•แƒ” แƒ‘แƒ›แƒฃแƒšแƒ˜ แƒžแƒแƒขแƒฉแƒ˜ 2018 แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒก แƒแƒ› แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒก. แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ“แƒ˜แƒกแƒ™แƒฃแƒกแƒ˜แƒ แƒแƒ› แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒฎแƒ•แƒ แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ–แƒ” แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒ›แƒ“แƒ”แƒœแƒแƒ“แƒแƒช แƒ›แƒ” แƒ•แƒ˜แƒชแƒ˜, XFS แƒแƒ แƒ˜แƒก แƒ”แƒ แƒ—แƒแƒ“แƒ”แƒ แƒ—แƒ˜ แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒ›แƒแƒก แƒฏแƒ”แƒ แƒฏแƒ”แƒ แƒแƒ‘แƒ˜แƒ—.

sync_file_range() แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ

Linux-แƒก แƒแƒฅแƒ•แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ˜ sync_file_range(), แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ’แƒแƒ“แƒ›แƒแƒ˜แƒขแƒแƒœแƒแƒ— แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ–แƒ” แƒ“แƒ แƒแƒ แƒ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜. แƒ”แƒก แƒ–แƒแƒ แƒ˜ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒš แƒ’แƒแƒ แƒ”แƒชแƒฎแƒ•แƒแƒก แƒ“แƒ แƒแƒ  แƒ”แƒšแƒแƒ“แƒ”แƒ‘แƒ แƒ›แƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒแƒจแƒ˜ sync_file_range() แƒœแƒแƒ—แƒฅแƒ•แƒแƒ›แƒ˜แƒ, แƒ แƒแƒ› แƒ”แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ "แƒซแƒแƒšแƒ˜แƒแƒœ แƒกแƒแƒจแƒ˜แƒจแƒ˜แƒ". แƒแƒ  แƒแƒ แƒ˜แƒก แƒ แƒ”แƒ™แƒแƒ›แƒ”แƒœแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ. แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒกแƒแƒคแƒ แƒ—แƒฎแƒ”แƒ”แƒ‘แƒ˜ sync_file_range() แƒซแƒแƒšแƒ˜แƒแƒœ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒแƒ แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ”แƒก แƒ›แƒแƒกแƒแƒšแƒ. แƒ™แƒ”แƒ แƒซแƒแƒ“, แƒ”แƒก แƒ–แƒแƒ แƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก RocksDB-แƒก, แƒ แƒแƒ—แƒ แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒแƒก, แƒ แƒแƒ“แƒ˜แƒก แƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒ”แƒ‘แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜ โ€žแƒ‘แƒ˜แƒœแƒซแƒฃแƒ โ€œ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒ“แƒ˜แƒกแƒ™แƒ–แƒ”. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ›แƒแƒ•แƒ” แƒ“แƒ แƒแƒก แƒ˜แƒฅ, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒกแƒขแƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒกแƒแƒงแƒแƒคแƒแƒ“, แƒ˜แƒ’แƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ fdatasync(). In แƒ™แƒแƒ“แƒ˜ RocksDB-แƒก แƒแƒฅแƒ•แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜ แƒแƒ› แƒ—แƒ”แƒ›แƒแƒ–แƒ”. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ–แƒแƒ แƒก แƒฐแƒ’แƒแƒ•แƒก sync_file_range() ZFS-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒแƒ  แƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒ”แƒ‘แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒ“แƒ˜แƒกแƒ™แƒ–แƒ”. แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ แƒ›แƒ”แƒฃแƒ‘แƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒ˜แƒจแƒ•แƒ˜แƒแƒ—แƒแƒ“ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒ“แƒ”แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒก. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒ›แƒ” แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒ—, แƒแƒ  แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ”แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ˜, แƒ—แƒฃ แƒแƒ‘แƒกแƒแƒšแƒฃแƒขแƒฃแƒ แƒแƒ“ แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก.

แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ”แƒ‘แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒ“แƒ’แƒ แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒกแƒแƒงแƒแƒคแƒแƒ“

แƒ›แƒ” แƒ›แƒ˜แƒ•แƒ”แƒ“แƒ˜ แƒ“แƒแƒกแƒ™แƒ•แƒœแƒแƒ›แƒ“แƒ”, แƒ แƒแƒ› แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒกแƒแƒ›แƒ˜ แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒ˜ I/O แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒšแƒแƒ“. แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒ—แƒ’แƒแƒœแƒก แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ fsync() แƒ˜แƒ› แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒกแƒ—แƒ•แƒ˜แƒก, แƒกแƒแƒ“แƒแƒช แƒคแƒแƒ˜แƒšแƒ˜ แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ”แƒ‘แƒ˜:

  1. แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ fdatasync() แƒแƒœ fsync() แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ write() (แƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ˜แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— fdatasync()).
  2. แƒ“แƒ แƒแƒจแƒ˜แƒ— แƒ’แƒแƒฎแƒกแƒœแƒ˜แƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒ— แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ O_DSYNC แƒแƒœ O_SYNC (แƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ˜ - แƒ“แƒ แƒแƒจแƒ˜แƒ— O_DSYNC).
  3. แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ pwritev2() แƒ“แƒ แƒแƒจแƒ˜แƒ— RWF_DSYNC แƒแƒœ RWF_SYNC (แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ˜แƒ แƒ“แƒ แƒแƒจแƒ˜แƒ— RWF_DSYNC).

แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒ‘แƒ˜

แƒ›แƒ” แƒ’แƒฃแƒšแƒ“แƒแƒกแƒ›แƒ˜แƒ— แƒแƒ  แƒ’แƒแƒ•แƒ–แƒแƒ›แƒ” แƒฉแƒ”แƒ›แƒก แƒ›แƒ˜แƒ”แƒ  แƒ’แƒแƒ›แƒแƒ™แƒ•แƒšแƒ”แƒฃแƒšแƒ˜ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ. แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒแƒช แƒ›แƒ” แƒจแƒ”แƒ•แƒœแƒ˜แƒจแƒœแƒ” แƒ›แƒแƒ—แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒกแƒ˜แƒฉแƒฅแƒแƒ แƒ”แƒจแƒ˜, แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒชแƒ˜แƒ แƒ”แƒ. แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ›แƒ” แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ•แƒชแƒ“แƒ”แƒ‘แƒแƒ“แƒ” แƒ“แƒ แƒ แƒแƒ› แƒกแƒฎแƒ•แƒ แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒจแƒ˜ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒฉแƒ•แƒ”แƒœแƒแƒก แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜. แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜, แƒ›แƒ” แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘ แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒ แƒ’แƒแƒ•แƒšแƒ”แƒœแƒแƒก แƒแƒฎแƒ“แƒ”แƒœแƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ–แƒ” แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒแƒ“, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒ˜ แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒ แƒ’แƒแƒ•แƒšแƒ”แƒœแƒแƒก แƒแƒฎแƒ“แƒ”แƒœแƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ–แƒ” แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒแƒ“.

  1. แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒฌแƒ”แƒ แƒ แƒฃแƒคแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒ˜แƒ, แƒ•แƒ˜แƒ“แƒ แƒ” แƒคแƒแƒ˜แƒšแƒ–แƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ (แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ‘แƒ˜แƒก แƒ›แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก 2-100%). แƒคแƒแƒ˜แƒšแƒ–แƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ›แƒแƒ’แƒ แƒ”แƒ‘แƒ แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ›แƒ”แƒขแƒแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒจแƒ˜, แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช แƒ™แƒ˜ fallocate(), แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ› แƒ”แƒคแƒ”แƒฅแƒขแƒ˜แƒก แƒกแƒ˜แƒ“แƒ˜แƒ“แƒ” แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒแƒ“แƒ”แƒก. แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒ— แƒ“แƒแƒ แƒ”แƒ™แƒแƒ— fallocate() แƒกแƒแƒญแƒ˜แƒ แƒ แƒคแƒแƒ แƒ—แƒ˜แƒก แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ’แƒแƒ›แƒแƒงแƒแƒคแƒแƒก. แƒ›แƒแƒจแƒ˜แƒœ แƒ”แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ” แƒแƒจแƒ™แƒแƒ แƒแƒ“ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ˜แƒ•แƒกแƒแƒก แƒœแƒฃแƒšแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒซแƒแƒฎแƒแƒก fsync(). แƒ”แƒก แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒคแƒแƒ˜แƒšแƒฃแƒ  แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒ‘แƒšแƒแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒจแƒ•แƒœแƒแƒก, แƒ แƒแƒ’แƒแƒ แƒช "แƒ’แƒแƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ˜" แƒœแƒแƒชแƒ•แƒšแƒแƒ“ "แƒ’แƒแƒฃแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒ”แƒšแƒ˜". แƒ”แƒก แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒ›แƒชแƒ˜แƒ แƒ” (แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 2%) แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒแƒก. แƒแƒกแƒ”แƒ•แƒ”, แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒ“แƒ˜แƒกแƒ™แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒก แƒฃแƒคแƒ แƒ แƒœแƒ”แƒšแƒ˜ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ‘แƒšแƒแƒ™แƒ˜แƒก แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ, แƒ•แƒ˜แƒ“แƒ แƒ” แƒกแƒฎแƒ•แƒ”แƒ‘แƒก. แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒก แƒœแƒฃแƒšแƒ”แƒ‘แƒ˜แƒ— แƒจแƒ”แƒ•แƒกแƒ”แƒ‘แƒแƒ› แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒแƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ (แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 100%) แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒ. แƒ™แƒ”แƒ แƒซแƒแƒ“, แƒ”แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒก แƒ“แƒ˜แƒกแƒ™แƒ”แƒ‘แƒ—แƒแƒœ. AWS EBS (แƒ”แƒก แƒแƒ แƒแƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒ, แƒ•แƒ”แƒ  แƒ“แƒแƒ•แƒแƒ“แƒแƒกแƒขแƒฃแƒ แƒ”). แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ”แƒฎแƒ”แƒ‘แƒ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒแƒก. GCP แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ˜ (แƒ“แƒ แƒ”แƒก แƒฃแƒ™แƒ•แƒ” แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒ, แƒ“แƒแƒ“แƒแƒกแƒขแƒฃแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒ—). แƒกแƒฎแƒ•แƒ แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒขแƒ”แƒ‘แƒ›แƒแƒช แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ”แƒก แƒ“แƒแƒ™แƒ•แƒ˜แƒ แƒ•แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ“แƒ˜แƒกแƒ™แƒ”แƒ‘แƒ—แƒแƒœ.
  2. แƒ แƒแƒช แƒฃแƒคแƒ แƒ แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒแƒ, แƒ›แƒ˜แƒ— แƒฃแƒคแƒ แƒ แƒ›แƒแƒฆแƒแƒšแƒ˜แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ (แƒ›แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 5%). แƒ–แƒแƒ แƒก แƒฐแƒ’แƒแƒ•แƒก open() แƒ“แƒ แƒแƒจแƒ˜แƒ— O_DSYNC แƒแƒœ แƒ“แƒแƒ แƒ”แƒ™แƒ”แƒ— pwritev2() แƒ“แƒ แƒแƒจแƒ˜แƒ— RWF_SYNC แƒฃแƒคแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒ–แƒแƒ แƒ˜ fdatasync(). แƒ›แƒ”แƒ”แƒญแƒ•แƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒแƒฅ แƒกแƒแƒฅแƒ›แƒ” แƒ˜แƒ›แƒแƒจแƒ˜แƒ, แƒ แƒแƒ› แƒแƒ› แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ˜แƒ—, แƒ แƒแƒšแƒก แƒ—แƒแƒ›แƒแƒจแƒแƒ‘แƒก แƒ˜แƒก แƒคแƒแƒฅแƒขแƒ˜, แƒ แƒแƒ› แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ˜ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒก แƒ”แƒ แƒ—แƒ˜ แƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒแƒ›แƒแƒชแƒแƒœแƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒญแƒ แƒ”แƒšแƒแƒ“ (แƒ”แƒ แƒ—แƒ˜ แƒ–แƒแƒ แƒ˜ แƒแƒ แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“). แƒ›แƒแƒ’แƒ แƒแƒ› แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒฎแƒ•แƒแƒแƒ‘แƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒชแƒ˜แƒ แƒ”แƒ, แƒแƒกแƒ” แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒฃแƒ’แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒงแƒแƒ— แƒ˜แƒ’แƒ˜ แƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒ แƒแƒ›, แƒ แƒแƒช แƒแƒ  แƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒ›แƒ˜แƒกแƒ˜ แƒšแƒแƒ’แƒ˜แƒ™แƒ˜แƒก แƒ’แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒแƒก.

แƒ—แƒฃ แƒ’แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒ“แƒ’แƒ แƒแƒ“แƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒ—แƒ”แƒ›แƒ, แƒแƒฅ แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒ›แƒแƒกแƒแƒšแƒ:

  • I/O แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜ โ€” แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก/แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ.
  • แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ–แƒ” - แƒแƒ›แƒ‘แƒแƒ•แƒ˜ แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ—แƒฃ แƒ แƒ แƒ”แƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒ“แƒแƒœ แƒ“แƒ˜แƒกแƒ™แƒแƒ›แƒ“แƒ” แƒ’แƒ–แƒแƒ–แƒ”.
  • แƒ แƒแƒ“แƒ˜แƒก แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒแƒ— แƒจแƒ”แƒ›แƒชแƒ•แƒ”แƒšแƒ˜ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ - แƒžแƒแƒกแƒฃแƒฎแƒ˜ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒ–แƒ”, แƒ แƒแƒ“แƒ˜แƒก แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒแƒ— fsync() แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ›แƒแƒ™แƒšแƒ”แƒ“, แƒ’แƒแƒ›แƒแƒ“แƒ˜แƒก, แƒ แƒแƒ› แƒ”แƒก แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒแƒฎแƒแƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒแƒก แƒ“แƒ แƒแƒ› แƒ แƒ”แƒ™แƒแƒ›แƒ”แƒœแƒ“แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜ แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒ› Linux-แƒจแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ แƒ˜แƒ›แƒแƒ•แƒ” แƒคแƒแƒ˜แƒšแƒ–แƒ”.
  • SQL แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ Linux-แƒ–แƒ”: FUA Internals - แƒแƒฅ แƒแƒ แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒ‘แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ SQL Server-แƒจแƒ˜ Linux แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒแƒ–แƒ”. แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ Windows แƒ“แƒ Linux แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ–แƒแƒ แƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก. แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒแƒ , แƒ แƒแƒ› แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒแƒ› แƒ›แƒแƒกแƒแƒšแƒ˜แƒก แƒฌแƒงแƒแƒšแƒแƒ‘แƒ˜แƒ— แƒ’แƒแƒ•แƒ˜แƒ’แƒ” XFS-แƒ˜แƒก FUA แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

แƒแƒ“แƒ”แƒกแƒ›แƒ” แƒ“แƒแƒ™แƒแƒ แƒ’แƒ”แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒคแƒ˜แƒฅแƒ แƒแƒ‘แƒ“แƒ˜แƒ—, แƒ แƒแƒ› แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ“ แƒ˜แƒงแƒ แƒจแƒ”แƒœแƒแƒฎแƒฃแƒšแƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ–แƒ”?

แƒ’แƒแƒ›แƒซแƒšแƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ แƒ“แƒ Linux แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก API

แƒ’แƒแƒ›แƒซแƒšแƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ แƒ“แƒ Linux แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก API

แƒฌแƒงแƒแƒ แƒ: www.habr.com