เดกเตเดฏเต‚เดฑเดฌเดฟเตพ เดกเดพเดฑเตเดฑ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเตเด‚ Linux เดซเดฏเตฝ API-เด•เดณเตเด‚

เด•เตเดฒเต—เดกเต เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เดณเดฟเดฒเต† เดกเดพเดฑเตเดฑเดพ เดธเด‚เดญเดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดธเตเดธเตเดฅเดฟเดฐเดคเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด—เดตเต‡เดทเดฃเด‚ เดจเดŸเดคเตเดคเตเดจเตเดจเดคเดฟเดจเดฟเดŸเดฏเดฟเตฝ, เด…เดŸเดฟเดธเตเดฅเดพเดจ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดŽเดจเดฟเด•เตเด•เต เดฎเดจเดธเตเดธเดฟเดฒเดพเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เดพเตป เดžเดพเตป เดŽเดจเตเดจเต†เดคเตเดคเดจเตเดจเต† เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต. เด NVMe เดธเตเดชเต†เดธเดฟเดซเดฟเด•เตเด•เต‡เดทเตป เดตเดพเดฏเดฟเดšเตเดšเดพเดฃเต เด†เดฐเด‚เดญเดฟเดšเตเดšเดคเต เดธเตเดธเตเดฅเดฟเดฐเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดพ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต เดธเด‚เดฌเดจเตเดงเดฟเดšเตเดšเต เดŽเดจเตเดคเดพเดฃเต เด‰เดฑเดชเตเดชเต เดจเตฝเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดฎเดจเดธเดฟเดฒเดพเด•เตเด•เดพเตป (เด…เดคเดพเดฏเดคเต, เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดชเดฐเดพเดœเดฏเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚ เดกเดพเดฑเตเดฑ เดฒเดญเตเดฏเดฎเดพเด•เตเดฎเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเต เดจเตฝเด•เตเดจเตเดจเต) เดžเด™เตเด™เตพเด•เตเด•เต NMVe เดกเดฟเดธเตเด•เตเด•เตพ เดจเตฝเด•เตเดจเตเดจเต. เดžเดพเตป เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเตเดฐเดงเดพเดจ เดจเดฟเด—เดฎเดจเด™เตเด™เตพ เดจเดŸเดคเตเดคเดฟ: เดกเดพเดฑเตเดฑ เดŽเดดเตเดคเดพเดจเตเดณเตเดณ เด•เดฎเดพเตปเดกเต เดจเตฝเด•เดฟเดฏ เดจเดฟเดฎเดฟเดทเด‚ เดฎเตเดคเตฝ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต เดฎเต€เดกเดฟเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดŽเดดเตเดคเตเดจเตเดจเดคเต เดตเดฐเต† เดกเดพเดฑเตเดฑ เด•เต‡เดŸเดพเดฏเดคเดพเดฏเดฟ เด•เดฃเด•เตเด•เดพเด•เตเด•เดฃเด‚. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดฎเดฟเด•เตเด• เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เดณเตเด‚ เดกเดพเดฑเตเดฑ เดฑเต†เด•เตเด•เต‹เตผเดกเต เดšเต†เดฏเตเดฏเดพเตป เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเตเด•เตพ เดตเดณเดฐเต† เดธเดจเตเดคเต‹เดทเดคเตเดคเต‹เดŸเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ, Linux เดซเดฏเตฝ API-เด•เตพ เดจเตฝเด•เตเดจเตเดจ เดชเต†เตผเดธเดฟเดธเตเดฑเตเดฑเตปเดธเต เดฎเต†เด•เตเด•เดพเดจเดฟเดธเด™เตเด™เตพ เดžเดพเตป เดชเดฐเตเดฏเดตเต‡เด•เตเดทเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดŽเดฒเตเดฒเดพเด‚ เด‡เดตเดฟเดŸเต† เดฒเดณเดฟเดคเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจเต: เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เด•เดฎเดพเตปเดกเดฟเดจเต† เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต write(), เดˆ เด•เดฎเดพเตปเดกเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเดฏ เดถเต‡เดทเด‚, เดกเดพเดฑเตเดฑ เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดพเดฏเดฟ เดกเดฟเดธเตเด•เดฟเตฝ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเด‚. เดชเด•เตเดทเต‡ write() RAM-เตฝ เดธเตเดฅเดฟเดคเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด•เต‡เตผเดฃเตฝ เด•เดพเดทเต†เดฏเดฟเดฒเต‡เด•เตเด•เต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดกเดพเดฑเตเดฑ เดฎเดพเดคเตเดฐเด‚ เดชเด•เตผเดคเตเดคเตเดจเตเดจเต. เดกเดฟเดธเตเด•เดฟเดฒเต‡เด•เตเด•เต เดกเดพเดฑเตเดฑ เดŽเดดเตเดคเดพเตป เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเต† เดจเดฟเตผเดฌเดจเตเดงเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดšเดฟเดฒ เด…เดงเดฟเด• เดธเด‚เดตเดฟเดงเดพเดจเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เดกเตเดฏเต‚เดฑเดฌเดฟเตพ เดกเดพเดฑเตเดฑ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเตเด‚ Linux เดซเดฏเตฝ API-เด•เดณเตเด‚

เดชเตŠเดคเตเดตเต‡, เดˆ เดฎเต†เดฑเตเดฑเต€เดฐเดฟเดฏเตฝ เดŽเดจเดฟเด•เตเด•เต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดณเตเดณ เด’เดฐเต เดตเดฟเดทเดฏเดคเตเดคเดฟเตฝ เดžเดพเตป เดชเด เดฟเดšเตเดš เด•เดพเดฐเตเดฏเด™เตเด™เดณเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เด•เตเดฑเดฟเดชเตเดชเตเด•เดณเตเดŸเต† เด’เดฐเต เด•เต‚เดŸเตเดŸเดฎเดพเดฃเต. เดเดฑเตเดฑเดตเตเด‚ เดชเตเดฐเดงเดพเดจเดชเตเดชเต†เดŸเตเดŸ เด•เดพเดฐเตเดฏเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดžเด™เตเด™เตพ เดตเดณเดฐเต† เดšเตเดฐเตเด•เตเด•เดฎเดพเดฏเดฟ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดธเตเดธเตเดฅเดฟเดฐ เดกเดพเดฑเตเดฑ เดธเด‚เดญเดฐเดฃเด‚ เดธเด‚เด˜เดŸเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. fdatasync() เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดซเตเดฒเดพเด—เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดซเดฏเดฒเตเด•เตพ เดคเตเดฑเด•เตเด•เตเด• O_DSYNC. เด•เต‹เดกเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเดฟเดธเตเด•เดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดตเดดเดฟเดฏเดฟเตฝ เดกเดพเดฑเตเดฑเดฏเตเด•เตเด•เต เดŽเดจเตเดคเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเด‚ เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเดฒเดฑเดฟเดฏเดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด’เดจเตเดจเต เดจเต‹เด•เตเด•เตเด• เด‡เดคเต เดฒเต‡เด–เดจเด‚.

เดฑเตˆเดฑเตเดฑเต() เดซเด‚เด—เตเดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ

เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ write() เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเดฟเตฝ เดจเดฟเตผเดตเดšเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดเด‡เด‡เด‡ เดชเต‹เดธเดฟเด•เตเดธเต เด’เดฐเต เดซเดฏเตฝ เดกเดฟเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฑเดฟเดฒเต‡เด•เตเด•เต เดกเดพเดฑเตเดฑ เดŽเดดเตเดคเดพเดจเตเดณเตเดณ เดถเตเดฐเดฎเดฎเดพเดฏเดฟ. เดœเต‹เดฒเดฟ เดตเดฟเดœเดฏเด•เดฐเดฎเดพเดฏเดฟ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดฟเดฏ เดถเต‡เดทเด‚ write() เดกเดพเดฑเตเดฑ เดฑเต€เดกเต เด“เดชเตเดชเดฑเต‡เดทเดจเตเด•เตพ เดฎเตเดฎเตเดชเต เดŽเดดเตเดคเดฟเดฏ เดฌเตˆเดฑเตเดฑเตเด•เตพ เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดจเตฝเด•เดฃเด‚, เดฎเดฑเตเดฑเต เดชเตเดฐเต‹เดธเดธเตเดธเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต‹ เดคเตเดฐเต†เดกเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต‹ เดกเดพเดฑเตเดฑ เด†เด•เตโ€Œเดธเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ เดชเต‹เดฒเตเด‚ (เดจเต‹เด•เตเด•เต‚ POSIX เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเดฟเดจเตเดฑเต† เดชเตเดฐเดธเด•เตเดคเดฎเดพเดฏ เดตเดฟเดญเดพเด—เด‚). เด‡เดคเต, เดธเดพเดงเดพเดฐเดฃ เดซเดฏเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเดฎเดพเดฏเตเดณเตเดณ เดคเตเดฐเต†เดกเตเด•เดณเตเดŸเต† เด‡เดŸเดชเต†เดŸเดฒเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ, เดฐเดฃเตเดŸเต เดคเตเดฐเต†เดกเตเด•เตพ เด“เดฐเต‹เดจเตเดจเตเด‚ เดˆ เดซเด‚เด—เตเดทเดจเตเด•เดณเต† เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ, เด“เดฐเต‹ เด•เต‹เดณเตเด‚ เด’เดจเตเดจเตเด•เดฟเตฝ เดฎเดฑเตเดฑเต เด•เต‹เดณเดฟเดจเตเดฑเต† เดจเดฟเตผเดตเตเดตเดนเดฃเด‚ เดจเดฏเดฟเด•เตเด•เตเดจเตเดจ เดŽเดฒเตเดฒเดพ เดธเต‚เดšเดฟเดชเตเดชเดฟเดšเตเดš เด…เดจเดจเตเดคเดฐเดซเดฒเด™เตเด™เดณเตเด‚ เด•เดพเดฃเดฃเด‚ เดŽเดจเตเดจเต เดชเดฑเดฏเตเดจเตเดจ เด’เดฐเต เด•เตเดฑเดฟเดชเตเดชเตเดฃเตเดŸเต. เด’เดฐเต เด…เดจเดจเตเดคเดฐเดซเดฒเดตเตเด‚ เด•เดพเดฃเตเดจเตเดจเดฟเดฒเตเดฒ. เดŽเดฒเตเดฒเดพ เดซเดฏเตฝ I/O เด“เดชเตเดชเดฑเต‡เดทเดจเตเด•เดณเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเตฝ เด’เดฐเต เดฒเต‹เด•เตเด•เต เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚ เดŽเดจเตเดจ เดจเดฟเด—เดฎเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด‡เดคเต เดจเดฏเดฟเด•เตเด•เตเดจเตเดจเต.

เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚ เด“เดชเตเดชเดฑเต‡เดทเตป เดŽเดจเตเดจเดพเดฃเต write() เด†เดฃเดพเดฃเต‹? เด’เดฐเต เดธเดพเด™เตเด•เต‡เดคเดฟเด• เด•เดพเดดเตเดšเดชเตเดชเดพเดŸเดฟเตฝ, เด…เดคเต†. เดกเดพเดฑเตเดฑ เดฑเต€เดกเต เด“เดชเตเดชเดฑเต‡เดทเดจเตเด•เตพ เดŽเดดเตเดคเดฟเดฏเดคเต เดฎเตเดดเตเดตเตป เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด’เดจเตเดจเตเด‚ เดคเดจเตเดจเต† เดจเตฝเด•เดฃเด‚ write(). เดŽเดจเตเดจเดพเตฝ เด“เดชเตเดชเดฑเต‡เดทเตป write(), เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เด…เดจเตเดธเดฐเดฟเดšเตเดšเต, เด…เดคเต เดŽเดดเตเดคเดพเตป เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดŸเดคเต†เดฒเตเดฒเดพเด‚ เดŽเดดเตเดคเดฟ เด…เดตเดธเดพเดจเดฟเดชเตเดชเดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเดฟเดฒเตเดฒ. เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เด’เดฐเต เดญเดพเด—เด‚ เดฎเดพเดคเตเดฐเด‚ เดŽเดดเตเดคเดพเตป เด…เดตเตพเด•เตเด•เต เด…เดจเตเดตเดพเดฆเดฎเตเดฃเตเดŸเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดฐเต‡ เดซเดฏเตฝ เดกเดฟเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตผ เดตเดฟเดตเดฐเดฟเดšเตเดš เด’เดฐเต เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต 1024 เดฌเตˆเดฑเตเดฑเตเด•เตพ เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เตเดจเตเดจ เดฐเดฃเตเดŸเต เดคเตเดฐเต†เดกเตเด•เตพ เดจเดฎเตเด•เตเด•เต เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚. เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเดฟเดจเตเดฑเต† เดตเต€เด•เตเดทเดฃเด•เต‹เดฃเดฟเตฝ เดจเดฟเดจเตเดจเต, เด“เดฐเต‹ เดฑเตˆเดฑเตเดฑเต เด“เดชเตเดชเดฑเต‡เดทเดจเตเด‚ เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดฌเตˆเดฑเตเดฑเต เดฎเดพเดคเตเดฐเดฎเต‡ เดšเต‡เตผเด•เตเด•เดพเตป เด•เดดเดฟเดฏเต‚ เดŽเดจเตเดจเดคเดพเดฃเต เดธเตเดตเต€เด•เดพเดฐเตเดฏเดฎเดพเดฏ เดซเดฒเด‚. เดˆ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เด†เดฑเตเดฑเต‹เดฎเดฟเด•เต เด†เดฏเดฟ เดจเดฟเดฒเดจเดฟเตฝเด•เตเด•เตเด‚, เดชเด•เตเดทเต‡ เด…เดต เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดฟเดฏ เดถเต‡เดทเด‚, เด…เดตเตผ เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เดŽเดดเตเดคเดฟเดฏ เดกเดพเดฑเตเดฑ เดฎเดฟเดถเตเดฐเดฟเดคเดฎเดพเด•เตเด‚. เด‡เดตเดฟเดŸเต† เดธเตเดฑเตเดฑเดพเด•เตเด•เต เด“เดตเตผเดซเตเดฒเต‹ เดŽเดจเตเดจ เดตเดฟเดทเดฏเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดณเดฐเต† เดฐเดธเด•เดฐเดฎเดพเดฏ เดšเตผเดšเตเดš.

fsync(), fdatasync() เดซเด‚เด—เตเดทเดจเตเด•เตพ

เดกเดฟเดธเตเด•เดฟเดฒเต‡เด•เตเด•เต เดกเดพเดฑเตเดฑ เดซเตเดฒเดทเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดŽเดณเตเดชเตเดชเดตเดดเดฟ เดซเด‚เด—เตเดทเดจเดฟเดฒเต‡เด•เตเด•เต เดตเดฟเดณเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต fsync(). เดชเดฐเดฟเดทเตเด•เดฐเดฟเดšเตเดš เดŽเดฒเตเดฒเดพ เดฌเตเดฒเต‹เด•เตเด•เตเด•เดณเตเด‚ เด•เดพเดทเต†เดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเดฟเดธเตเด•เดฟเดฒเต‡เด•เตเด•เต เดจเต€เด•เตเด•เดพเตป เดˆ เดซเด‚เด—เตเดทเตป เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเต‹เดŸเต เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต. เดซเดฏเดฒเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เดฎเต†เดฑเตเดฑเดพเดกเดพเดฑเตเดฑเดฏเตเด‚ เด‡เดคเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต (เด†เด•เตเดธเดธเต เดธเดฎเดฏเด‚, เดซเดฏเตฝ เดชเดฐเดฟเดทเตเด•เตเด•เดฐเดฃ เดธเดฎเดฏเด‚ เดฎเตเดคเดฒเดพเดฏเดต). เดˆ เดฎเต†เดฑเตเดฑเดพเดกเดพเดฑเตเดฑ เดตเดณเดฐเต† เด…เดชเต‚เตผเดตเดฎเดพเดฏเดฟ เดฎเดพเดคเตเดฐเดฎเต‡ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเต‚ เดŽเดจเตเดจเต เดžเดพเตป เดตเดฟเดถเตเดตเดธเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เด‡เดคเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเตเดฐเดงเดพเดจเดฎเดฒเตเดฒเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เดฑเดฟเดฏเดพเดฎเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดซเด‚เด—เตเดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚ fdatasync(). เดฆเดฟ เดธเดนเดพเดฏเด‚ เด† เดธเดฎเดฏเดคเตเดคเต fdatasync() เดˆ เดซเด‚เด—เตโ€Œเดทเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจ เดธเดฎเดฏเดคเตเดคเต, เด‡เดคเตเดฐเดฏเตเด‚ เดฎเต†เดฑเตเดฑเดพเดกเดพเดฑเตเดฑ เดกเดฟเดธเตโ€Œเด•เดฟเดฒเต‡เด•เตเด•เต เดธเต‡เดตเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต, เด‡เดคเต "เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดกเดพเดฑเตเดฑ เดฑเต€เดกเดฟเด‚เด—เต เด“เดชเตเดชเดฑเต‡เดทเดจเตเด•เดณเตเดŸเต† เดถเดฐเดฟเดฏเดพเดฏ เดจเดฟเตผเดตเตเดตเดนเดฃเดคเตเดคเดฟเดจเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต." เดฎเดฟเด•เตเด• เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเตเด‚ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเดจเตเดจเดคเต เด‡เดคเดพเดฃเต.

เดธเดพเดงเตเดฏเดฎเดพเดฏ เดชเดฐเดพเดœเดฏเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚ เดซเดฏเตฝ เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเด•เตเดฎเต†เดจเตเดจเต เดˆ เดฎเต†เด•เตเด•เดพเดจเดฟเดธเด™เตเด™เตพ เด‰เดฑเดชเตเดชเตเดจเตฝเด•เตเดจเตเดจเดฟเดฒเตเดฒ เดŽเดจเตเดจเดคเดพเดฃเต เด‡เดตเดฟเดŸเต† เด‰เดฏเตผเดจเตเดจเตเดตเดฐเตเดจเตเดจ เด’เดฐเต เดชเตเดฐเดถเตเดจเด‚. เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเต, เด’เดฐเต เดชเตเดคเดฟเดฏ เดซเดฏเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดจเดฟเด™เตเด™เตพ เดตเดฟเดณเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต fsync() เด…เดคเต เด…เดŸเด™เตเด™เตเดจเตเดจ เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเด•เตเด•เดพเดฏเดฟ. เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด’เดฐเต เด•เตเดฐเดพเดทเดฟเดจเตเดถเต‡เดทเด‚, เดˆ เดซเดฏเตฝ เดจเดฟเดฒเดตเดฟเดฒเดฟเดฒเตเดฒ เดŽเดจเตเดจเต เดคเต†เดณเดฟเดžเตเดžเต‡เด•เตเด•เดพเด‚. UNIX-เดจเต เด•เต€เดดเดฟเตฝ, เดนเดพเตผเดกเต เดฒเดฟเด™เตเด•เตเด•เดณเตเดŸเต† เด‰เดชเดฏเต‹เด—เด‚ เด•เดพเดฐเดฃเด‚, เด’เดฐเต เดซเดฏเตฝ เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเด•เดณเดฟเตฝ เดจเดฟเดฒเดจเดฟเตฝเด•เตเด•เตเด‚ เดŽเดจเตเดจเดคเดพเดฃเต เด‡เดคเดฟเดจเต เด•เดพเดฐเดฃเด‚. เด…เดคเดฟเดจเดพเตฝ, เดตเดฟเดณเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ fsync() เดเดคเต เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟ เดกเดพเดฑเตเดฑเดฏเตเด‚ เดกเดฟเดธเตโ€Œเด•เดฟเดฒเต‡เด•เตเด•เต เดซเตเดฒเดทเต เดšเต†เดฏเตเดฏเดฃเดฎเต†เดจเตเดจเต เด’เดฐเต เดซเดฏเดฒเดฟเดจเต เด…เดฑเดฟเดฏเดพเตป เดฎเดพเตผเด—เดฎเดฟเดฒเตเดฒ (เด‡เดตเดฟเดŸเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเตฝ เดตเดพเดฏเดฟเด•เตเด•เดพเด‚). ext4 เดซเดฏเตฝ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเต เด•เดดเดฟเดตเตเดฃเตเดŸเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจเต เดฏเดพเดจเตเดคเตเดฐเดฟเด•เดฎเดพเดฏเดฟ เด…เดชเต‡เด•เตเดทเดฟเด•เตเด•เดพเตป fsync() เด…เดจเตเดฌเดจเตเดง เดซเดฏเดฒเตเด•เตพ เด…เดŸเด™เตเด™เตเดจเตเดจ เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเด•เดณเดฟเดฒเต‡เด•เตเด•เต, เดŽเดจเตเดจเดพเตฝ เดฎเดฑเตเดฑเต เดซเดฏเตฝ เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเด‚ เด…เด™เตเด™เดจเต†เดฏเดพเด•เดฃเดฎเต†เดจเตเดจเดฟเดฒเตเดฒ.

เดตเตเดฏเดคเตเดฏเดธเตเดค เดซเดฏเตฝ เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เดณเดฟเตฝ เดˆ เดธเด‚เดตเดฟเดงเดพเดจเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเด‚. เดžเดพเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต blktrace ext4, XFS เดซเดฏเตฝ เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เดณเดฟเตฝ เดŽเดจเตเดคเต†เดฒเตเดฒเดพเด‚ เดกเดฟเดธเตเด•เต เด“เดชเตเดชเดฑเต‡เดทเดจเตเด•เดณเดพเดฃเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เด…เดฑเดฟเดฏเดพเตป. เดฐเดฃเตเดŸเตเด‚ เดซเดฏเดฒเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดซเดฏเตฝ เดธเดฟเดธเตเดฑเตเดฑเด‚ เดœเต‡เดฃเดฒเดฟเดจเตเดฑเต†เดฏเตเด‚ เด‰เดณเตเดณเดŸเด•เตเด•เด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดกเดฟเดธเตเด•เดฟเดฒเต‡เด•เตเด•เต เดธเดพเดงเดพเดฐเดฃ เดฑเตˆเดฑเตเดฑเต เด•เดฎเดพเตปเดกเตเด•เตพ เดจเตฝเด•เตเดจเตเดจเต, เด’เดฐเต FUA (เดซเต‹เดดเตเดธเต เดฏเต‚เดฃเดฟเดฑเตเดฑเต เด†เด•เตเดธเดธเต, เดกเดฟเดธเตเด•เดฟเดฒเต‡เด•เตเด•เต เดจเต‡เดฐเดฟเดŸเตเดŸเต เดกเดพเดฑเตเดฑ เดŽเดดเตเดคเตเด•, เด•เดพเดทเต† เดฌเตˆเดชเดพเดธเต เดšเต†เดฏเตเดฏเตเด•) เดจเดŸเดคเตเดคเดฟ เด•เดพเดทเต† เดซเตเดฒเดทเต เดšเต†เดฏเตเดคเต เดชเตเดฑเดคเตเดคเตเด•เดŸเด•เตเด•เตเด•. เด‡เดŸเดชเดพเดŸเดฟเดจเตเดฑเต† เดตเดธเตโ€Œเดคเตเดค เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฟเด•เตเด•เดพเตป เด…เดตเตผ เด…เดคเต เดšเต†เดฏเตโ€Œเดคเต‡เด•เตเด•เดพเด‚. FUA เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เดพเดคเตเดค เดกเตเดฐเตˆเดตเตเด•เดณเดฟเตฝ, เด‡เดคเต เดฐเดฃเตเดŸเต เด•เดพเดทเต† เดซเตเดฒเดทเตเด•เตพเด•เตเด•เต เด•เดพเดฐเดฃเดฎเดพเด•เตเดจเตเดจเต. เดŽเดจเตเดฑเต† เดชเดฐเต€เด•เตเดทเดฃเด™เตเด™เตพ เด…เดคเต เดคเต†เดณเดฟเดฏเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต fdatasync() เด…เตฝเดชเตเดชเด‚ เดตเต‡เด—เดคเตเดคเดฟเตฝ fsync(). เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ blktrace เดŽเดจเตเดจเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต fdatasync() เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดกเดฟเดธเตเด•เดฟเดฒเต‡เด•เตเด•เต เด•เตเดฑเดšเตเดšเต เดกเดพเดฑเตเดฑ เดŽเดดเตเดคเตเดจเตเดจเต (ext4 เตฝ fsync() 20 เด•เดฟเดฌเดฟ เดŽเดดเตเดคเตเดจเตเดจเต, เด’เดชเตเดชเด‚ fdatasync() - 16 เด•เดฟเดฌเดฟ). เด•เต‚เดŸเดพเดคเต†, XFS ext4 เดจเต‡เด•เตเด•เดพเตพ เด…เตฝเดชเตเดชเด‚ เดตเต‡เด—เดคเดฏเตเดณเตเดณเดคเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เด•เดฃเตเดŸเต†เดคเตเดคเดฟ. เด‡เดตเดฟเดŸเต†เดฏเตเด‚ เดธเดนเดพเดฏเดคเตเดคเต‹เดŸเต† blktrace เดŽเดจเตเดจเต เด•เดฃเตเดŸเตเดชเดฟเดŸเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดžเตเดžเต fdatasync() เดกเดฟเดธเตเด•เดฟเดฒเต‡เด•เตเด•เต เด•เตเดฑเดšเตเดšเต เดกเดพเดฑเตเดฑ เดซเตเดฒเดทเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต (XFS-เตฝ 4 KiB).

fsync() เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด…เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เตพ

เด…เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดฎเต‚เดจเตเดจเต เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดŽเดจเดฟเด•เตเด•เต เดšเดฟเดจเตเดคเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚ fsync()เดžเดพเตป เดชเตเดฐเดพเดฏเต‹เด—เดฟเด•เดฎเดพเดฏเดฟ เด•เดฃเตเดŸเดคเต.

2008เดฒเดพเดฃเต เด‡เดคเตเดคเดฐเดฎเตŠเดฐเต เดธเด‚เดญเดตเด‚ เด‰เดฃเตเดŸเดพเดฏเดคเต. เดงเดพเดฐเดพเดณเด‚ เดซเดฏเดฒเตเด•เตพ เดกเดฟเดธเตเด•เดฟเดฒเต‡เด•เตเด•เต เดŽเดดเตเดคเดฟเดฏเดพเตฝ เดซเดฏเตผเดซเต‹เด•เตเดธเต 3 เด‡เดจเตเดฑเตผเดซเต‡เดธเต เดฎเดฐเดตเดฟเดšเตเดšเต. เด‡เดจเตเดฑเตผเดซเต‡เดธเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต เด…เดคเดฟเดจเตเดฑเต† เด…เดตเดธเตเดฅเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต SQLite เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดคเดพเดฃเต เดชเตเดฐเดถเตเดจเด‚. เด‡เดจเตเดฑเตผเดซเต‡เดธเดฟเตฝ เดธเด‚เดญเดตเดฟเดšเตเดš เด“เดฐเต‹ เดฎเดพเดฑเตเดฑเดคเตเดคเดฟเดจเตเด‚ เดถเต‡เดทเด‚, เดซเด‚เด—เตเดทเตป เดตเดฟเดณเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเต fsync(), เด‡เดคเต เดธเตเดฅเดฟเดฐเดคเดฏเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดธเด‚เดญเดฐเดฃเดคเตเดคเดฟเดจเต เดจเดฒเตเดฒ เด—เตเดฏเดพเดฐเดฃเตเดŸเดฟ เดจเตฝเด•เดฟ. เด…เดชเตเดชเต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดš ext3 เดซเดฏเตฝ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ, เดซเด‚เด—เตเดทเตป fsync() เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเต† เดŽเดฒเตเดฒเดพ "เดตเตƒเดคเตเดคเดฟเด•เต†เดŸเตเดŸ" เดชเต‡เดœเตเด•เดณเตเด‚ เดกเดฟเดธเตเด•เดฟเดฒเต‡เด•เตเด•เต เดซเตเดฒเดทเต เดšเต†เดฏเตเดคเต, เด…เดจเตเดฌเดจเตเดง เดซเดฏเดฒเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดต เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ. เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚ เดซเดฏเตผเดซเต‹เด•เตเดธเดฟเดฒเต† เด’เดฐเต เดฌเดŸเตเดŸเดฃเดฟเตฝ เด•เตเดฒเดฟเด•เตเด•เตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เด’เดฐเต เดฎเดพเด—เตเดจเดฑเตเดฑเดฟเด•เต เดกเดฟเดธเตเด•เดฟเดฒเต‡เด•เตเด•เต เดฎเต†เด—เดพเดฌเตˆเดฑเตเดฑเต เดกเดพเดฑเตเดฑ เดŽเดดเตเดคเดพเตป เด‡เดŸเดฏเดพเด•เตเด•เตเด‚, เด‡เดคเดฟเดจเต เดจเดฟเดฐเดตเดงเดฟ เดธเต†เด•เตเด•เตปเดกเตเด•เตพ เดŽเดŸเตเดคเตเดคเต‡เด•เตเด•เดพเด‚. เดชเตเดฐเดถเตเดจเดคเตเดคเดฟเดจเตเดณเตเดณ เดชเดฐเดฟเดนเดพเดฐเด‚, เดžเดพเตป เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฟเดฏเดฟเดŸเดคเตเดคเต‹เดณเด‚ เด…เดคเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเตเดฎเดพเดฏเตเดณเตเดณ เดœเต‹เดฒเดฟ เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดฌเดพเด•เตเด•เตเด—เตเดฐเต—เดฃเตเดŸเต เดŸเดพเดธเตเด•เตเด•เตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด• เดŽเดจเตเดจเดคเดพเดฏเดฟเดฐเตเดจเตเดจเต เดฎเต†เดฑเตเดฑเต€เดฐเดฟเดฏเตฝ. เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚ เดซเดฏเตผเดซเต‹เด•เตเดธเต เดฎเตเดฎเตเดชเต เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเดคเดฟเดจเต‡เด•เตเด•เดพเตพ เด•เต‚เดŸเตเดคเตฝ เด•เตผเดถเดจเดฎเดพเดฏ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต เด†เดตเดถเตเดฏเด•เดคเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟเดฏเดฟเดฐเตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† 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 เดซเตเดฒเดพเด—เตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดซเดฏเดฒเตเด•เตพ เดคเตเดฑเด•เตเด•เตเดจเตเดจเต

เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เดกเดพเดฑเตเดฑ เดธเด‚เดญเดฐเดฃเด‚ เดจเตฝเด•เตเดจเตเดจ เดฒเดฟเดจเด•เตเดธเต เดฎเต†เด•เตเด•เดพเดจเดฟเดธเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดšเตผเดšเตเดšเดฏเดฟเดฒเต‡เด•เตเด•เต เดจเดฎเตเด•เตเด•เต เดฎเดŸเด™เตเด™เดพเด‚. เด…เดคเดพเดฏเดคเต, เดจเดฎเตเดฎเตพ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดชเดคเดพเด•เดฏเตเดŸเต† เด‰เดชเดฏเต‹เด—เดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต O_SYNC เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเดคเดพเด• O_DSYNC เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดซเดฏเดฒเตเด•เตพ เดคเตเดฑเด•เตเด•เตเดฎเตเดชเต‹เตพ เดคเตเดฑเด•เตเด•เตเด• (). เดˆ เดธเดฎเต€เดชเดจเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เด“เดฐเต‹ เด•เดฎเดพเตปเดกเดฟเดจเตเดถเต‡เดทเดตเตเด‚ เด“เดฐเต‹ เดกเดพเดฑเตเดฑเดพ เดฑเตˆเดฑเตเดฑเต เด“เดชเตเดชเดฑเต‡เดทเตป เดจเดŸเดคเตเดคเตเดจเตเดจเต write() เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเต เดฏเดฅเดพเด•เตเดฐเดฎเด‚ เด•เดฎเดพเตปเดกเตเด•เตพ เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต fsync() ะธ fdatasync(). เดฆเดฟ POSIX เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เด‡เดคเดฟเดจเต† "เดธเดฟเตปเด•เตเดฐเตŠเดฃเตˆเดธเตเดกเต I/O เดซเดฏเตฝ เด‡เดจเตเดฑเด—เตเดฐเดฟเดฑเตเดฑเดฟ เด•เด‚เดชเตเดฒเต€เดทเตป" เดŽเดจเตเดจเตเด‚ "เดกเดพเดฑเตเดฑ เด‡เดจเตเดฑเด—เตเดฐเดฟเดฑเตเดฑเดฟ เด•เด‚เดชเตเดฒเต€เดทเตป" เดŽเดจเตเดจเตเด‚ เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เดธเดฎเต€เดชเดจเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดฐเดงเดพเดจ เดจเต‡เดŸเตเดŸเด‚, เดกเดพเดฑเตเดฑเดพ เดธเดฎเด—เตเดฐเดค เด‰เดฑเดชเตเดชเดพเด•เตเด•เดพเตป เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดณเตเดณเต‚, เดฐเดฃเตเดŸเดฒเตเดฒ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต - write() ะธ fdatasync()). เดˆ เดธเดฎเต€เดชเดจเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดฐเดงเดพเดจ เดชเต‹เดฐเดพเดฏเตเดฎ, เด…เดจเตเดฌเดจเตเดง เดซเดฏเตฝ เดกเดฟเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดฑเตˆเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเด‚ เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚, เด‡เดคเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด•เต‹เดกเต เดฐเต‚เดชเดชเตเดชเต†เดŸเตเดคเตเดคเดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เดชเดฐเดฟเดฎเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเด‚.

O_DIRECT เดซเตเดฒเดพเด—เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดกเดฏเดฑเด•เตเดŸเต I/O เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต

เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ 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() เดซเด‚เด—เตโ€Œเดทเตป

เดฒเดฟเดจเด•เตเดธเดฟเดจเต เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เด‰เดฃเตเดŸเต sync_file_range(), เด‡เดคเต เดซเดฏเดฒเดฟเดจเตเดฑเต† เด’เดฐเต เดญเดพเด—เด‚ เดฎเดพเดคเตเดฐเด‚ เดกเดฟเดธเตเด•เดฟเดฒเต‡เด•เตเด•เต เดซเตเดฒเดทเต เดšเต†เดฏเตเดฏเดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต, เดฎเตเดดเตเดตเตป เดซเดฏเดฒเตเด‚ เด…เดฒเตเดฒ. เดˆ เด•เต‹เตพ เด’เดฐเต เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดซเตเดฒเดทเต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเต เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเดจเตเดจเดคเตเดตเดฐเต† เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเด•เดฏเตเดฎเดฟเดฒเตเดฒ. เดŽเดจเตเดจเดพเตฝ เดชเดฐเดพเดฎเตผเดถเดคเตเดคเดฟเตฝ sync_file_range() เดˆ เด•เดฎเดพเตปเดกเต "เดตเดณเดฐเต† เด…เดชเด•เดŸเด•เดฐเดฎเดพเดฃเต" เดŽเดจเตเดจเต เดชเดฑเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต. เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒ. เดธเดตเดฟเดถเต‡เดทเดคเด•เดณเตเด‚ เด…เดชเด•เดŸเด™เตเด™เดณเตเด‚ sync_file_range() เดตเดณเดฐเต† เดจเดจเตเดจเดพเดฏเดฟ เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต เด‡เดคเต เดฎเต†เดฑเตเดฑเต€เดฐเดฟเดฏเตฝ. เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเตเด‚, เด•เต‡เตผเดฃเตฝ "เดตเตƒเดคเตเดคเดฟเด•เต†เดŸเตเดŸ" เดกเดพเดฑเตเดฑ เดกเดฟเดธเตเด•เดฟเดฒเต‡เด•เตเด•เต เดซเตเดฒเดทเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดพเตป เดˆ เด•เต‹เตพ RocksDB เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฏเดฟ เดคเต‹เดจเตเดจเตเดจเตเดจเต. เดŽเดจเตเดจเดพเตฝ เด…เดคเต‡ เดธเดฎเดฏเด‚ เด…เดตเดฟเดŸเต†, เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เดกเดพเดฑเตเดฑ เดธเด‚เดญเดฐเดฃเด‚ เด‰เดฑเดชเตเดชเดพเด•เตเด•เดพเตป, เด…เดคเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต fdatasync(). เดฆเดฟ เด•เต‡เดพเดกเต เดˆ เดตเดฟเดทเดฏเดคเตเดคเดฟเตฝ 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 (เด‡เดคเต เด…เดจเต—เดฆเตเดฏเต‹เด—เดฟเด• เดกเดพเดฑเตเดฑเดฏเดพเดฃเต, เดŽเดจเดฟเด•เตเด•เต เด‡เดคเต เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดžเตเดžเดฟเดฒเตเดฒ). เดธเด‚เดญเดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเดฒเตเด‚ เด‡เดคเตเดคเดจเตเดจเต† เดชเต‹เด•เตเดจเตเดจเต เดœเดฟเดธเดฟเดชเดฟ เดชเต†เตผเดธเดฟเดธเตเดฑเตเดฑเดจเตเดฑเต เดกเดฟเดธเตเด•เต (เด‡เดคเต เด‡เดคเดฟเดจเด•เด‚ เด”เดฆเตเดฏเต‹เด—เดฟเด• เดตเดฟเดตเดฐเดฎเดพเดฃเต, เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฟเดšเตเดšเต). เดฎเดฑเตเดฑเต เดตเดฟเดฆเด—เตเดงเดฐเตเด‚ เด‡เดคเตเดคเดจเตเดจเต† เดšเต†เดฏเตเดคเต เดจเดฟเดฐเต€เด•เตเดทเดฃเด‚เดตเตเดฏเดคเตเดฏเดธเตเดค เดกเดฟเดธเตเด•เตเด•เดณเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.
  2. เด•เตเดฑเดšเตเดšเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเตเด•เตพ, เด‰เดฏเตผเดจเตเดจ เดชเตเดฐเด•เดŸเดจเด‚ (เดจเต‡เดŸเตเดŸเด‚ เดเด•เดฆเต‡เดถเด‚ 5% เด†เด•เดพเด‚). เด’เดฐเต เด•เต‹เตพ เดชเต‹เดฒเต† เดคเต‹เดจเตเดจเตเดจเตเดจเต open() เดชเดคเดพเด•เดฏเตเดฎเดพเดฏเดฟ O_DSYNC เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดตเดฟเดณเดฟเด•เตเด•เตเด• pwritev2() เดชเดคเดพเด•เดฏเตเดฎเดพเดฏเดฟ RWF_SYNC เดตเต‡เด—เดคเตเดคเดฟเดฒเตเดณเตเดณ เด•เต‹เตพ fdatasync(). เด’เดฐเต‡ เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เด•เตเดฑเดšเตเดšเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเตเด•เตพ เดจเดŸเดคเตเดคเต‡เดฃเตเดŸเดฟเดตเดฐเตเดฎเต†เดจเตเดจ เดตเดธเตเดคเตเดคเดฏเดฟเตฝ เดˆ เดธเดฎเต€เดชเดจเดคเตเดคเดฟเดจเต เด’เดฐเต เดชเด™เตเด•เตเดฃเตเดŸเต เดŽเดจเตเดจเดคเดพเดฃเต เด‡เดตเดฟเดŸเต†เดฏเตเดณเตเดณ เด•เดพเดฐเตเดฏเด‚ เดŽเดจเตเดจเต เดžเดพเตป เดธเด‚เดถเดฏเดฟเด•เตเด•เตเดจเตเดจเต (เดฐเดฃเตเดŸเดฟเดจเต เดชเด•เดฐเด‚ เด’เดฐเต เด•เต‹เตพ). เดŽเดจเตเดจเดพเตฝ เดชเตเดฐเด•เดŸเดจเดคเตเดคเดฟเดฒเต† เดตเตเดฏเดคเตเดฏเดพเดธเด‚ เดตเดณเดฐเต† เดšเต†เดฑเตเดคเดพเดฃเต, เด…เดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เด…เดตเด—เดฃเดฟเด•เตเด•เดพเดจเตเด‚ เด…เดคเดฟเดจเตเดฑเต† เดฏเตเด•เตเดคเดฟเดฏเต† เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเด•เตเด•เดพเดคเตเดค เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚.

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเตเดธเตเดฅเดฟเดฐ เดกเดพเดฑเตเดฑ เดธเด‚เดญเดฐเดฃ โ€‹โ€‹เดตเดฟเดทเดฏเดคเตเดคเดฟเตฝ เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดšเดฟเดฒ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เดฎเต†เดฑเตเดฑเต€เดฐเดฟเดฏเดฒเตเด•เตพ เด‡เดคเดพ:

  • I/O เด†เด•เตเดธเดธเต เดฐเต€เดคเดฟเด•เตพ โ€” เด‡เตปเดชเตเดŸเตเดŸเต / เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดฎเต†เด•เตเด•เดพเดจเดฟเดธเด™เตเด™เดณเตเดŸเต† เด…เดŸเดฟเดธเตเดฅเดพเดจ เด•เดพเดฐเตเดฏเด™เตเด™เดณเตเดŸเต† เด’เดฐเต เด…เดตเดฒเต‹เด•เดจเด‚.
  • เดกเดพเดฑเตเดฑ เดกเดฟเดธเตเด•เดฟเตฝ เดŽเดคเตเดคเตเดจเตเดจเตเดตเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเดจเตเดจเต - เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเดฟเดธเตเด•เดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดตเดดเดฟเดฏเดฟเตฝ เดกเดพเดฑเตเดฑเดฏเตเด•เตเด•เต เดŽเดจเตเดคเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด’เดฐเต เดธเตเดฑเตเดฑเต‹เดฑเดฟ.
  • เดŽเดชเตเดชเต‹เดดเดพเดฃเต เดจเดฟเด™เตเด™เตพ เด…เดŸเด™เตเด™เตเดจเตเดจ เดกเดฏเดฑเด•เตเดŸเดฑเดฟ fsync เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเต - เดŽเดชเตเดชเต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚ เดŽเดจเตเดจ เดšเต‹เดฆเตเดฏเดคเตเดคเดฟเดจเตเดณเตเดณ เด‰เดคเตเดคเดฐเด‚ fsync() เดกเดฏเดฑเด•เตเดŸเดฑเดฟเด•เตพเด•เตเด•เดพเดฏเดฟ. เด‡เดคเต เดšเตเดฐเตเด•เตเด•เดคเตเดคเดฟเตฝ เดชเดฑเดžเตเดžเดพเตฝ, เด’เดฐเต เดชเตเดคเดฟเดฏ เดซเดฏเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เด‡เดคเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เดฒเดฟเดจเด•เตเดธเดฟเตฝ เด’เดฐเต‡ เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เดจเดฟเดฐเดตเดงเดฟ เดฑเดซเดฑเตปเดธเตเด•เตพ เด‰เดฃเตเดŸเดพเด•เดพเด‚ เดŽเดจเตเดจเดคเดพเดฃเต เดˆ เดถเตเดชเดพเตผเดถเดฏเตเดŸเต† เด•เดพเดฐเดฃเด‚.
  • เดฒเดฟเดจเด•เตเดธเดฟเดฒเต† SQL เดธเต†เตผเดตเตผ: FUA เด‡เดจเตเดฑเต‡เดฃเตฝเดธเต โ€” Linux เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเดฟเดฒเต† SQL เดธเต†เตผเดตเดฑเดฟเตฝ เดŽเด™เตเด™เดจเต†เดฏเดพเดฃเต เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เดกเดพเดฑเตเดฑ เดธเด‚เดญเดฐเดฃเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต เดŽเดจเตเดจเดคเดฟเดจเตเดฑเต† เด’เดฐเต เดตเดฟเดตเดฐเดฃเด‚ เด‡เดตเดฟเดŸเต†เดฏเตเดฃเตเดŸเต. เดตเดฟเตปเดกเต‹เดธเต, เดฒเดฟเดจเด•เตเดธเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเตเด•เตพ เดคเดฎเตเดฎเดฟเตฝ เดฐเดธเด•เดฐเดฎเดพเดฏ เดšเดฟเดฒ เดคเดพเดฐเดคเดฎเตเดฏเด™เตเด™เตพ เด‡เดตเดฟเดŸเต†เดฏเตเดฃเตเดŸเต. XFS-เดจเตเดฑเต† FUA เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเดจเต† เด•เตเดฑเดฟเดšเตเดšเต เดžเดพเตป เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฟเดฏเดคเต เดˆ เดฎเต†เดฑเตเดฑเต€เดฐเดฟเดฏเดฒเดฟเดจเต เดจเดจเตเดฆเดฟเดฏเดพเดฃเต†เดจเตเดจเต เดŽเดจเดฟเด•เตเด•เต เดเดคเดพเดฃเตเดŸเต เด‰เดฑเดชเตเดชเตเดฃเตเดŸเต.

เด’เดฐเต เดกเดฟเดธเตเด•เดฟเตฝ เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดพเดฏเดฟ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพ เด•เดฐเตเดคเตเดจเตเดจ เดกเดพเดฑเตเดฑ เดจเดทเตเดŸเดชเตเดชเต†เดŸเตเดŸเต‹?

เดกเตเดฏเต‚เดฑเดฌเดฟเตพ เดกเดพเดฑเตเดฑ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเตเด‚ Linux เดซเดฏเตฝ API-เด•เดณเตเด‚

เดกเตเดฏเต‚เดฑเดฌเดฟเตพ เดกเดพเดฑเตเดฑ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเตเด‚ Linux เดซเดฏเตฝ API-เด•เดณเตเด‚

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com