ื“ื•ืจืึทื‘ืึทืœ ื“ืึทื˜ืึท ืกื˜ืึธืจื™ื“ื–ืฉ ืื•ืŸ ืœื™ื ื•ืงืก ื˜ืขืงืข ืึทืคึผื™ืก

ืื™ืš, ืจื™ืกืขืจื˜ืฉื™ื ื’ ื“ื™ ืคืขืกื˜ืงื™ื™ึทื˜ ืคื•ืŸ ื“ืึทื˜ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ ืื™ืŸ ื•ื•ืึธืœืงืŸ ืกื™ืกื˜ืขืžืขืŸ, ื‘ืึทืฉืœืึธืกืŸ ืฆื• ืคึผืจื•ื‘ื™ืจืŸ ื–ื™ืš ืฆื• ืžืึทื›ืŸ ื–ื™ื›ืขืจ ืึทื– ืื™ืš ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื“ื™ ื™ืงืขืจื“ื™ืง ื˜ื™ื ื’ื–. ืื™ืš ืกื˜ืึทืจื˜ืขื“ ื“ื•ืจืš ืœื™ื™ืขื ืขืŸ ื“ื™ NVMe ืกืคึผืขืง ืื™ืŸ ืกื“ืจ ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ืึธืก ื’ืขืจืึทื ื˜ื™ื– ื•ื•ืขื’ืŸ ื“ืึทื˜ืŸ ืคึผืขืจืกื™ืกื˜ืึทื ืก (ื“ืึธืก ืื™ื– ื’ืขืจืึทื ื˜ื™ื– ืึทื– ื“ืึทื˜ืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื‘ืืจืขื›ื˜ื™ื’ื˜ ื ืึธืš ืึท ืกื™ืกื˜ืขื ื“ื•ืจื›ืคืึทืœ), ื’ืขื‘ืŸ ืื•ื ื“ื– NMVe ื“ื™ืกืงืก. ืื™ืš ื”ืึธื‘ ื’ืขืžืื›ื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ื”ื•ื™ืคึผื˜ ืงืึทื ืงืœื•ื–ืฉืึทื ื–: ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื“ื™ ื“ืึทืžื™ื“ื–ืฉื“ ื“ืึทื˜ืŸ ืคื•ืŸ ื“ืขื ืžืึธืžืขื ื˜ ื“ื™ ื“ืึทื˜ืŸ ืฉืจื™ื™ึทื‘ืŸ ื‘ืึทืคึฟืขืœ ืื™ื– ื’ืขื’ืขื‘ืŸ, ืื•ืŸ ื‘ื™ื– ื“ืขื ืžืึธืžืขื ื˜ ื–ื™ื™ ื–ืขื ืขืŸ ื’ืขืฉืจื™ื‘ืŸ ืฆื• ื“ื™ ืกื˜ืึธืจื™ื“ื–ืฉ ืžื™ื˜ืœ. ืึธื‘ืขืจ, ืื™ืŸ ืจื•ื‘ึฟ ืžื’ื™ืœื”, ืกื™ืกื˜ืขื ืงืึทืœืœืก ื–ืขื ืขืŸ ื’ืึทื ืฅ ื‘ืขืฉืึธืœืขื ื’ืขื ื™ืฆื˜ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ื“ืึทื˜ืŸ.

ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ืื™ืš ื•ื™ืกืคืึธืจืฉืŸ ื“ื™ ืคึผืขืจืกื™ืกื˜ืึทื ืก ืžืขืงืึทื ื™ื–ืึทืžื– ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš ื“ื™ ืœื™ื ื•ืงืก ื˜ืขืงืข ืึทืคึผื™ืก. ืขืก ืžื™ื™ื ื˜ ืึทื– ืึทืœืฅ ื–ืึธืœ ื–ื™ื™ืŸ ืคึผืฉื•ื˜ ื“ืึธ: ื“ื™ ืคึผืจืึธื’ืจืึทื ืจื•ืคื˜ ื“ื™ ื‘ืึทืคึฟืขืœ write(), ืื•ืŸ ื ืึธืš ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ืขื ื‘ืึทืคึฟืขืœ ืื™ื– ื’ืขืขื ื“ื™ืงื˜, ื“ื™ ื“ืึทื˜ืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืกื™ืงื™ื•ืจืœื™ ืกื˜ืึธืจื“ ืื•ื™ืฃ ื“ื™ืกืง. ืื‘ืขืจ write() ื‘ืœื•ื™ื– ืงืืคื™ืขืก ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืึทื˜ืŸ ืฆื• ื“ื™ ืงืขืจืŸ ืงืึทืฉ ืื™ืŸ ื‘ืึทืจืึทืŸ. ืื™ืŸ ืกื“ืจ ืฆื• ืฆื•ื•ื™ื ื’ืขืŸ ื“ื™ ืกื™ืกื˜ืขื ืฆื• ืฉืจื™ื™ึทื‘ืŸ ื“ืึทื˜ืŸ ืฆื• ื“ื™ืกืง, ืขื˜ืœืขื›ืข ื ืึธืš ืžืขืงืึทื ื™ื–ืึทืžื– ืžื•ื–ืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜.

ื“ื•ืจืึทื‘ืึทืœ ื“ืึทื˜ืึท ืกื˜ืึธืจื™ื“ื–ืฉ ืื•ืŸ ืœื™ื ื•ืงืก ื˜ืขืงืข ืึทืคึผื™ืก

ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ, ื“ืขื ืžืึทื˜ืขืจื™ืึทืœ ืื™ื– ืึท ืกื›ื•ื ืคื•ืŸ ื”ืขืจื•ืช ื•ื•ืขื’ืŸ ื•ื•ืึธืก ืื™ืš ื’ืขืœืขืจื ื˜ ืื•ื™ืฃ ืึท ื˜ืขืžืข ื•ื•ืึธืก ืื™ื– ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืคึฟืึทืจ ืžื™ืจ. ืื•ื™ื‘ ืžื™ืจ ืจืขื“ืŸ ื–ื™ื™ืขืจ ื‘ืขืงื™ืฆืขืจ ื•ื•ืขื’ืŸ ื“ื™ ืžืขืจืกื˜ ื•ื•ื™ื›ื˜ื™ืง, ืขืก ื˜ื•ืจื ืก ืื•ื™ืก ืึทื– ืื™ืŸ ืกื“ืจ ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ืกืึทืกื˜ื™ื™ื ืึทื‘ืึทืœ ื“ืึทื˜ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื ื•ืฆืŸ ื“ื™ ื‘ืึทืคึฟืขืœ. fdatasync() ืึธื“ืขืจ ืขืคืขื ืขืŸ ื˜ืขืงืขืก ืžื™ื˜ ืคืึธืŸ O_DSYNC. ืื•ื™ื‘ ืื™ืจ ื–ืขื ื˜ ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืื™ืŸ ืœืขืจื ืขืŸ ืžืขืจ ื•ื•ืขื’ืŸ ื•ื•ืึธืก ื›ืึทืคึผืึทื ื– ืฆื• ื“ืึทื˜ืŸ ืื•ื™ืฃ ื“ื™ ื•ื•ืขื’ ืคื•ืŸ ืงืึธื“ ืฆื• ื“ื™ืกืง, ืงื•ืง ืื™ืŸ this ืึทืจื˜ื™ืงืœ.

ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ ื ื™ืฆืŸ ื“ื™ ืฉืจื™ื™ึทื‘ืŸ () ืคึฟื•ื ืงืฆื™ืข

ืกื™ืกื˜ืขื ืจื•ืคืŸ write() ื“ื™ืคื™ื™ื ื“ ืื™ืŸ ื“ื™ ื ืึธืจืžืึทืœ IEEE POSIX ื•ื•ื™ ืึทืŸ ืคึผืจื•ื•ื•ืŸ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ื“ืึทื˜ืŸ ืฆื• ืึท ื˜ืขืงืข ื“ื™ืกืงืจื™ืคึผื˜ืึธืจ. ื ืึธืš ืžืฆืœื™ื— ืงืึทืžืคึผืœื™ืฉืึทืŸ ืคื•ืŸ ืึทืจื‘ืขื˜ write() ื“ืึทื˜ืŸ ืœื™ื™ืขื ืขืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืžื•ื–ืŸ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืคึผื•ื ืงื˜ ื“ื™ ื‘ื™ื˜ืขืก ื•ื•ืึธืก ื–ืขื ืขืŸ ืคืจื™ืขืจ ื’ืขืฉืจื™ื‘ืŸ, ื˜ืืŸ ืึทื–ื•ื™ ืืคื™ืœื• ืื•ื™ื‘ ื“ื™ ื“ืึทื˜ืŸ ื–ืขื ืขืŸ ืึทืงืกืขืกื˜ ืคึฟื•ืŸ ืื ื“ืขืจืข ืคึผืจืึทืกืขืกืึทื– ืึธื“ืขืจ ืคึฟืขื“ืขื (ื“ืึธ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืึธืคึผื˜ื™ื™ืœื•ื ื’ ืคื•ืŸ ื“ื™ POSIX ื ืึธืจืžืึทืœ). ื“ืึธ, ืื™ืŸ ื“ืขืจ ืึธืคึผื˜ื™ื™ืœื•ื ื’ ืื•ื™ืฃ ื“ื™ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืคื•ืŸ ืคึฟืขื“ืขื ืžื™ื˜ ื ืึธืจืžืึทืœ ื˜ืขืงืข ืึทืคึผืขืจื™ื™ืฉืึทื ื–, ืขืก ืื™ื– ืึท ื˜ืึธืŸ ื•ื•ืึธืก ื–ืื’ื˜ ืึทื– ืื•ื™ื‘ ืฆื•ื•ื™ื™ ืคึฟืขื“ืขื ื™ืขื“ืขืจ ืจื•ืคืŸ ื“ื™ ืคืึทื ื’ืงืฉืึทื ื–, ื™ืขื“ืขืจ ืจื•ืคืŸ ืžื•ื–ืŸ ืึธื“ืขืจ ื–ืขืŸ ืึทืœืข ื“ื™ ืื ื’ืขื•ื•ื™ื–ืŸ ืงืึทื ืกืึทืงื•ื•ืขื ืกืึทื– ื•ื•ืึธืก ื“ื™ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคื•ืŸ ื“ื™ ืื ื“ืขืจืข ืจื•ืคืŸ ืคื™ืจื˜ ืฆื•, ืึธื“ืขืจ ื ื™ื˜ ื–ืขืŸ ื‘ื™ื™ึท ืึทืœืข ืงื™ื™ืŸ ืคืืœื’ืŸ. ื“ืึธืก ืคื™ืจื˜ ืฆื• ื“ืขืจ ืžืกืงื ื ืึทื– ืึทืœืข ื˜ืขืงืข ื™ / ืึธ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืžื•ื–ืŸ ื”ืึทืœื˜ืŸ ืึท ืฉืœืึธืก ืื•ื™ืฃ ื“ื™ ืžื™ื˜ืœ ื•ื•ืึธืก ืื™ื– ืืจื‘ืขื˜ืŸ ืื•ื™ืฃ.

ื˜ื•ื˜ ื“ืึธืก ืžื™ื™ื ืขืŸ ืึทื– ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข write() ืื™ื– ืึทื˜ืึธืžื™ืฉืข? ืคื•ืŸ ืึท ื˜ืขื›ื ื™ืฉ ืคื•ื ื˜ ืคื•ืŸ ืžื™ื™ื ื•ื ื’, ื™ืึธ. ื“ืึทื˜ืึท ืœื™ื™ืขื ืขืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืžื•ื–ืŸ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืึธื“ืขืจ ืึทืœืข ืึธื“ืขืจ ื’ืึธืจื ื™ื˜ ืคื•ืŸ ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ื’ืขืฉืจื™ื‘ืŸ ืžื™ื˜ write(). ืื‘ืขืจ ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข write(), ืœื•ื™ื˜ ื“ื™ ืกื˜ืึทื ื“ืึทืจื˜, ื“ืึทืจืฃ ื ื™ืฉื˜ ืกื•ืฃ, ื•ื•ื™ื™ืœ ื’ืขืฉืจื™ื‘ืŸ ืึทืœืฅ ื•ื•ืึธืก ื–ื™ ืื™ื– ื’ืขื‘ืขื˜ืŸ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืึทืจืึธืคึผ. ืขืก ืื™ื– ืขืจืœื•ื™ื‘ื˜ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ื‘ืœื•ื™ื– ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ื“ืึทื˜ืŸ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืžื™ืจ ื–ืืœืŸ ื”ืึธื‘ืŸ ืฆื•ื•ื™ื™ ืกื˜ืจื™ืžื– ื™ืขื“ืขืจ ืึทื“ื™ื ื’ 1024 ื‘ื™ื˜ืขืก ืฆื• ืึท ื˜ืขืงืข ื“ื™ืกืงืจื™ื™ื‘ื“ ื“ื•ืจืš ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื˜ืขืงืข ื“ื™ืกืงืจื™ืคึผื˜ืึธืจ. ืคึฟื•ืŸ ื“ืขืจ ื ืึธืจืžืึทืœ ืžื™ื™ื ื•ื ื’, ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคึผืึทืกื™ืง ื•ื•ืขืŸ ื™ืขื“ืขืจ ืคื•ืŸ ื“ื™ ืฉืจื™ื™ึทื‘ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืงืขื ืขืŸ ืฆื•ื’ืขื‘ืŸ ื‘ืœื•ื™ื– ืื™ื™ืŸ ื‘ื™ื™ื˜ ืฆื• ื“ืขืจ ื˜ืขืงืข. ื“ื™ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื•ื•ืขืœืŸ ื‘ืœื™ื™ึทื‘ืŸ ืึทื˜ืึธืžื™ืฉืข, ืึธื‘ืขืจ ื ืึธืš ื–ื™ื™ ืคืึทืจืขื ื“ื™ืงืŸ, ื“ื™ ื“ืึทื˜ืŸ ื–ื™ื™ ืฉืจื™ื™ึทื‘ืŸ ืฆื• ื“ืขืจ ื˜ืขืงืข ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื–ืฉืึทืžื‘ืึทืœื“. ื“ืึธ ื–ื™ื™ืขืจ ื˜ืฉื™ืงืึทื•ื•ืข ื“ื™ืกืงื•ืกื™ืข ื•ื•ืขื’ืŸ ื“ืขื ื˜ืขืžืข ืื•ื™ืฃ ืกื˜ืึทืง ืึธื•ื•ืขืจืคืœืึธื•ื•.

fsync () ืื•ืŸ fdatasync () ืคืึทื ื’ืงืฉืึทื ื–

ื“ื™ ื™ื–ื™ืึทืกื˜ ื•ื•ืขื’ ืฆื• ื•ื™ืกืฉืขืคึผืŸ ื“ืึทื˜ืŸ ืฆื• ื“ื™ืกืง ืื™ื– ืฆื• ืจื•ืคืŸ ื“ื™ ืคึฟื•ื ืงืฆื™ืข fsync(). ื“ืขื ืคึฟื•ื ืงืฆื™ืข ืคืจืขื’ื˜ ื“ื™ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื ืฆื• ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืึทืœืข ืžืึทื“ืึทืคื™ื™ื“ ื‘ืœืึทืงืก ืคื•ืŸ ื“ื™ ืงืึทืฉ ืฆื• ื“ื™ืกืง. ื“ืึธืก ื›ื•ืœืœ ืึทืœืข ืžืขื˜ืึทื“ืึทื˜ืึท ืคื•ืŸ ื“ืขืจ ื˜ืขืงืข (ืฆื•ื˜ืจื™ื˜ ืฆื™ื™ื˜, ื˜ืขืงืข ืžืึธื“ื™ืคื™ืงืึทื˜ื™ืึธืŸ ืฆื™ื™ื˜, ืื•ืŸ ืึทื–ื•ื™ ืื•ื™ืฃ). ืื™ืš ื’ืœื•ื™ื‘ืŸ ืึทื– ื“ื™ ืžืขื˜ืึทื“ืึทื˜ืึท ืื™ื– ืจืึทืจืขืœื™ ื“ืืจืฃ, ืึทื–ื•ื™ ืื•ื™ื‘ ืื™ืจ ื•ื•ื™ืกืŸ ืึทื– ืขืก ืื™ื– ื ื™ืฉื˜ ื•ื•ื™ื›ื˜ื™ืง ืคึฟืึทืจ ืื™ืจ, ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ื“ื™ ืคื•ื ืงืฆื™ืข fdatasync(). ื“ื™ ื”ื™ืœืฃ ืื•ื™ืฃ fdatasync() ืขืก ื–ืื’ื˜ ืึทื– ื‘ืขืฉืึทืก ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ืขื ืคึฟื•ื ืงืฆื™ืข, ืึทื–ืึท ืึท ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹ืžืขื˜ืึทื“ืึทื˜ืึท ืื™ื– ื’ืขืจืื˜ืขื•ื•ืขื˜ ืฆื• ื“ื™ืกืง, ื•ื•ืึธืก ืื™ื– "ื ื™ื™ื˜ื™ืง ืคึฟืึทืจ ื“ื™ ืจื™ื›ื˜ื™ืง ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคื•ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื“ืึทื˜ืŸ ืœื™ื™ืขื ืขืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื–." ืื•ืŸ ื“ืึธืก ืื™ื– ืคึผื•ื ืงื˜ ื•ื•ืึธืก ืจื•ื‘ึฟ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื–ืึธืจื’ืŸ ื•ื•ืขื’ืŸ.

ืื™ื™ืŸ ืคึผืจืึธื‘ืœืขื ื•ื•ืึธืก ืงืขืŸ ืื•ื™ืคืฉื˜ื™ื™ืŸ ื“ืึธ ืื™ื– ืึทื– ื“ื™ ืžืขืงืึทื ื™ื–ืึทืžื– ื˜ืึธืŸ ื ื™ื˜ ื’ืึทืจืึทื ื˜ื™ืจืŸ ืึทื– ื“ื™ ื˜ืขืงืข ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืคึฟื•ื ืขืŸ ื ืึธืš ืึท ืžืขื’ืœืขืš ื“ื•ืจื›ืคืึทืœ. ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ, ื•ื•ืขืŸ ืึท ื ื™ื™ึท ื˜ืขืงืข ืื™ื– ื‘ืืฉืืคืŸ, ืื™ื™ื ืขืจ ื–ืึธืœ ืจื•ืคืŸ fsync() ืคึฟืึทืจ ื“ื™ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ื•ื•ืึธืก ื›ึผื•ืœืœ ืขืก. ืึทื ื“ืขืจืฉ, ื ืึธืš ืึท ืงืจืึทืš, ืขืก ืงืขืŸ ื–ื™ื™ืŸ ืึทื– ื“ืขืจ ื˜ืขืงืข ื˜ื•ื˜ ื ื™ืฉื˜ ืขืงืกื™ืกื˜ื™ืจืŸ. ื“ื™ ืกื™ื‘ื” ืคึฟืึทืจ ื“ืขื ืื™ื– ืึทื– ืื•ื ื˜ืขืจ UNIX, ืจืขื›ื˜ ืฆื• ื“ืขืจ ื ื•ืฆืŸ ืคื•ืŸ ืฉื•ื•ืขืจ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ืขืŸ, ืึท ื˜ืขืงืข ืงืขื ืขืŸ ืขืงืกื™ืกื˜ื™ืจืŸ ืื™ืŸ ืงื™ื™ืคืœ ื“ื™ื™ืจืขืงื˜ืขืจื™ื–. ื“ืขืจื™ื‘ืขืจ, ื•ื•ืขืŸ ืคืึทืš fsync() ืขืก ืื™ื– ืงื™ื™ืŸ ื•ื•ืขื’ ืคึฟืึทืจ ืึท ื˜ืขืงืข ืฆื• ื•ื•ื™ืกืŸ ื•ื•ืึธืก ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ื“ืึทื˜ืŸ ื–ืึธืœ ืื•ื™ืš ื–ื™ื™ืŸ ืคืœืึทืฉื˜ ืฆื• ื“ื™ืกืง (ื“ืึธ ืื™ืจ ืงืขื ื˜ ืœื™ื™ืขื ืขืŸ ืžืขืจ ื•ื•ืขื’ืŸ ื“ืขื). ืขืก ืงื•ืงื˜ ื•ื•ื™ ื“ื™ ืขืงืกื˜4 ื˜ืขืงืข ืกื™ืกื˜ืขื ืื™ื– ื˜ื•ื™ื’ืขื•ื•ื“ื™ืง ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื ื•ืฆืŸ fsync() ืฆื• ื“ื™ื™ืจืขืงื˜ืขืจื™ื– ืžื™ื˜ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ื˜ืขืงืขืก, ืึธื‘ืขืจ ื“ืึธืก ืงืขืŸ ื ื™ืฉื˜ ื–ื™ื™ืŸ ื“ืขืจ ืคืึทืœ ืžื™ื˜ ืื ื“ืขืจืข ื˜ืขืงืข ืกื™ืกื˜ืขืžืขืŸ.

ื“ืขื ืžืขืงืึทื ื™ื–ืึทื ืงืขื ืขืŸ ื–ื™ื™ืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ื“ื™ืคืขืจืขื ื˜ืœื™ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื˜ืขืงืข ืกื™ืกื˜ืขืžืขืŸ. ืื™ืš ื”ืื‘ ื’ืขื ื•ืฆื˜ ื‘ืœืงื˜ืจืึทืกืข ืฆื• ืœืขืจื ืขืŸ ื•ื•ืึธืก ื“ื™ืกืง ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื–ืขื ืขืŸ ื’ืขื ื™ืฆื˜ ืื™ืŸ ืขืงืกื˜ 4 ืื•ืŸ XFS ื˜ืขืงืข ืกื™ืกื˜ืขืžืขืŸ. ื‘ื™ื™ื“ืข ืึทืจื•ื™ืกื’ืขื‘ืŸ ื“ื™ ื’ืขื•ื•ื™ื™ื ื˜ืœืขืš ืฉืจื™ื™ึทื‘ืŸ ืงืึทืžืึทื ื“ื– ืฆื• ื“ื™ืกืง ืคึฟืึทืจ ื‘ื™ื™ื“ืข ื“ื™ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื“ื™ ื˜ืขืงืขืก ืื•ืŸ ื“ื™ ื˜ืขืงืข ืกื™ืกื˜ืขื ื–ืฉื•ืจื ืึทืœ, ื•ื™ืกืžื™ื™ื“ืŸ ื“ื™ ืงืึทืฉ ืื•ืŸ ืึทืจื•ื™ืกื’ืึทื ื’ ื“ื•ืจืš ื“ื•ืจื›ืคื™ืจืŸ ืึท FUA (Force Unit Access, ืฉืจื™ื™ื‘ืŸ ื“ืึทื˜ืŸ ื’ืœื™ื™ึทืš ืฆื• ื“ื™ืกืง, ื‘ื™ื™ืคึผืึทืกื™ื ื’ ื“ื™ ืงืึทืฉ) ืฉืจื™ื™ึทื‘ืŸ ืฆื• ื“ืขื ื–ืฉื•ืจื ืึทืœ. ื–ื™ื™ ืžื™ืกื˜ืึธืžืข ื˜ืึธืŸ ืคึผื•ื ืงื˜ ืึทื– ืื™ืŸ ืกื“ืจ ืฆื• ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื“ื™ ืคืึทืงื˜ ืคื•ืŸ ื“ื™ ืžืึทืกืข - ืžืึทื˜ืŸ. ืื•ื™ืฃ ื“ืจื™ื™ื•ื•ื– ื•ื•ืึธืก ื˜ืึธืŸ ื ื™ื˜ ืฉื˜ื™ืฆืŸ FUA, ื“ืึธืก ื– ืฆื•ื•ื™ื™ ืงืึทืฉ ืคืœืึทืฉื™ื–. ืžื™ื™ึทืŸ ื™ืงืกืคึผืขืจืึทืžืึทื ืฅ ื”ืึธื‘ืŸ ื’ืขื•ื•ื™ื–ืŸ ืึทื– fdatasync() ืึท ื‘ื™ืกืœ ืคืึทืกื˜ืขืจ fsync(). ื ื•ืฆืŸ blktrace ื™ื ื“ื™ืงื™ื™ืฅ ืึทื– fdatasync() ื™ื•ื–ืฉืึทื•ื•ืึทืœื™ ืฉืจื™ื™ื‘ื˜ ื•ื•ื™ื™ื ื™ืงืขืจ ื“ืึทื˜ืŸ ืฆื• ื“ื™ืกืง (ืื™ืŸ ext4 fsync() ืฉืจื™ื™ื‘ื˜ 20 ืงื™ื‘, ืื•ืŸ fdatasync() - 16 ืงื™ื‘). ืื™ืš ื”ืึธื‘ ืื•ื™ืš ื’ืขืคึฟื•ื ืขืŸ ืึทื– XFS ืื™ื– ืึท ื‘ื™ืกืœ ืคืึทืกื˜ืขืจ ื•ื•ื™ ืขืงืกื˜ 4. ืื•ืŸ ื“ืึธ ืžื™ื˜ ื“ืขืจ ื”ื™ืœืฃ blktrace ื”ืึธื˜ ื“ืึธืก ื’ืขืงืขื ื˜ ื“ืขืจื•ื•ื™ืกืŸ fdatasync() ืคืœื•ืฉื™ื– ื•ื•ื™ื™ื ื™ืงืขืจ ื“ืึทื˜ืŸ ืฆื• ื“ื™ืกืง (4 KiB ืื™ืŸ XFS).

ืึทืžื‘ื™ื’ื™ื•ืึทืก ืกื™ื˜ื•ืึทื˜ื™ืึธื ืก ื•ื•ืขืŸ ื ื™ืฆืŸ fsync ()

ืื™ืš ืงืขื ืขืŸ ื˜ืจืึทื›ื˜ืŸ ืคื•ืŸ ื“ืจื™ื™ึท ืึทืžื‘ื™ื’ื™ื•ืึทืก ืกื™ื˜ื•ืึทื˜ื™ืึธื ืก ื•ื•ืขื’ืŸ fsync()ื•ื•ืืก ืื™ืš ื”ืื‘ ื’ืขื˜ืจืืคืŸ ืื™ืŸ ืคื™ืจ.

ื“ืขืจ ืขืจืฉื˜ืขืจ ืึทื–ืึท ืื™ื ืฆื™ื“ืขื ื˜ ืื™ื– ืคืืจื’ืขืงื•ืžืขืŸ ืื™ืŸ 2008. ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜, ื“ื™ Firefox 3 ืฆื•ื‘ื™ื ื“ ืื™ื– "ืคืึทืจืคืจื•ื™ืจืŸ" ืื•ื™ื‘ ืึท ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ ื˜ืขืงืขืก ื–ืขื ืขืŸ ื’ืขืฉืจื™ื‘ืŸ ืฆื• ื“ื™ืกืง. ื“ืขืจ ืคึผืจืึธื‘ืœืขื ืื™ื– ื’ืขื•ื•ืขืŸ ืึทื– ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืฆื•ื‘ื™ื ื“ ื’ืขื ื™ืฆื˜ ืึท SQLite ื“ืึทื˜ืึทื‘ื™ื™ืก ืฆื• ืงืจืึธื ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื–ื™ื™ืŸ ืฉื˜ืึทื˜. ื ืึธืš ื™ืขื“ืขืจ ืขื ื“ืขืจื•ื ื’ ื•ื•ืึธืก ืื™ื– ืคืืจื’ืขืงื•ืžืขืŸ ืื™ืŸ ื“ื™ ืฆื•ื‘ื™ื ื“, ื“ื™ ืคึฟื•ื ืงืฆื™ืข ืื™ื– ื’ืขืจื•ืคืŸ fsync(), ื•ื•ืึธืก ื”ืื˜ ื’ื•ื˜ ื’ืขืจืึทื ื˜ื™ื– ืคื•ืŸ ืกื˜ืึทื‘ื™ืœ ื“ืึทื˜ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ. ืื™ืŸ ื“ื™ ื“ืขืžืึธืœื˜ ื’ืขื•ื•ื™ื™ื ื˜ ืขืงืกื˜3 ื˜ืขืงืข ืกื™ืกื˜ืขื, ื“ื™ ืคึฟื•ื ืงืฆื™ืข fsync() ืคืœืืฉืขื“ ืฆื• ื“ื™ืกืง ืึทืœืข ื“ื™ "ื’ืจืึธื‘" ื‘ืœืขื˜ืขืจ ืื™ืŸ ื“ื™ ืกื™ืกื˜ืขื, ืื•ืŸ ื ื™ื˜ ื‘ืœื•ื™ื– ื“ื™ ื•ื•ืึธืก ื–ืขื ืขืŸ ืฉื™ื™ึทื›ื•ืช ืฆื• ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ื˜ืขืงืข. ื“ืขื ืžืขื ื˜ ืึทื– ืงืœื™ืงื™ื ื’ ืึท ืงื ืขืคึผืœ ืื™ืŸ ืคื™ืจืขืคืึธืงืก ืงืขืŸ ืคืึทืจืฉืึทืคืŸ ืžืขื’ืื‘ื™ื™ื˜ ืคื•ืŸ ื“ืึทื˜ืŸ ืฆื• ื–ื™ื™ืŸ ื’ืขืฉืจื™ื‘ืŸ ืฆื• ืึท ืžืึทื’ื ืขื˜ื™ืง ื“ื™ืกืง, ื•ื•ืึธืก ืงืขืŸ ื ืขืžืขืŸ ืคื™ืœืข ืกืขืงื•ื ื“ืขืก. ื“ื™ ืœื™ื™ื–ื•ื ื’ ืฆื• ื“ืขื ืคึผืจืึธื‘ืœืขื, ื•ื•ื™ ื•ื•ื™ื™ึทื˜ ื•ื•ื™ ืื™ืš ืคืืจืฉื˜ืื ืขืŸ ืคื•ืŸ ืคื•ืŸ ื“ืขื ืžืึทื˜ืขืจื™ืึทืœ, ืื™ื– ื’ืขื•ื•ืขืŸ ืฆื• ืึทืจื™ื‘ืขืจืคื™ืจืŸ ื“ื™ ืึทืจื‘ืขื˜ ืžื™ื˜ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืฆื• ื™ื™ืกื™ื ื’ืงืจืึทื ืึทืก ื”ื™ื ื˜ืขืจื’ืจื•ื ื˜ ื˜ืึทืกืงืก. ื“ืขื ืžื™ื˜ืœ ืึทื– Firefox ื’ืขื•ื•ื™ื™ื ื˜ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืžืขืจ ืฉื˜ืจืขื ื’ ืกื˜ืึธืจื™ื“ื–ืฉ ืคึผืขืจืกื™ืกื˜ืึทื ืก ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ื•ื•ื™ ื˜ืึทืงืข ื“ืืจืฃ, ืื•ืŸ ื“ื™ ืขืงืกื˜ 3 ืคื™ืœืขืกื™ืกื˜ืขื ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ื‘ืœื•ื™ื– ื™ื’ื–ืึทืกืขืจื™ื™ื˜ื™ื“ ื“ืขื ืคึผืจืึธื‘ืœืขื.

ื“ื™ ืฆื•ื•ื™ื™ื˜ืข ืคึผืจืึธื‘ืœืขื ืื™ื– ื’ืขื•ื•ืขืŸ ืื™ืŸ 2009. ื“ืขืจื ืึธืš, ื ืึธืš ืึท ืกื™ืกื˜ืขื ืงืจืึทืš, ื ื™ืฆืขืจืก ืคื•ืŸ ื“ื™ ื ื™ื™ึทืข ืขืงืกื˜ 4 ื˜ืขืงืข ืกื™ืกื˜ืขื ื’ืขืคื•ื ืขืŸ ืึทื– ืคื™ืœืข ื ื™ื™ ื‘ืืฉืืคืŸ ื˜ืขืงืขืก ื–ืขื ืขืŸ ื ื•ืœ-ืœืขื ื’, ืึธื‘ืขืจ ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ื’ืขืฉืขืŸ ืžื™ื˜ ื“ื™ ืขืœื˜ืขืจืข ืขืงืกื˜ 3 ื˜ืขืงืข ืกื™ืกื˜ืขื. ืื™ืŸ ื“ืขื ืคืจื™ืขืจื“ื™ืงืŸ ืคึผืึทืจืึทื’ืจืึทืฃ, ืื™ืš ื’ืขืจืขื“ื˜ ื•ื•ืขื’ืŸ ื•ื•ื™ ืขืงืกื˜ 3 ื“ืึทืžืคึผื˜ ืฆื• ืคื™ืœ ื“ืึทื˜ืŸ ืื•ื™ืฃ ื“ื™ ื“ื™ืกืง, ื•ื•ืึธืก ืกืœืึธื•ื“ ื“ื™ ื˜ื™ื ื’ื– ืคื™ืœ. fsync(). ืฆื• ืคึฟืึทืจื‘ืขืกืขืจืŸ ื“ื™ ืกื™ื˜ื•ืึทืฆื™ืข, ืขืงืกื˜4 ืคืœื•ืฉื™ื– ื‘ืœื•ื™ื– ื“ื™ "ื’ืจืึธื‘" ื‘ืœืขื˜ืขืจ ื•ื•ืึธืก ื–ืขื ืขืŸ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ืฆื• ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื˜ืขืงืข. ืื•ืŸ ื“ื™ ื“ืึทื˜ืŸ ืคื•ืŸ ืื ื“ืขืจืข ื˜ืขืงืขืก ื‘ืœื™ื™ื‘ืŸ ืื™ืŸ ื–ื›ึผืจื•ืŸ ืคึฟืึทืจ ืึท ืคื™ืœ ืžืขืจ ืฆื™ื™ื˜ ื•ื•ื™ ืžื™ื˜ ืขืงืกื˜3. ื“ืึธืก ืื™ื– ื’ืขืฉืขืŸ ืฆื• ืคึฟืึทืจื‘ืขืกืขืจืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’ (ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, ื“ื™ ื“ืึทื˜ืŸ ืกื˜ื™ื™ื– ืื™ืŸ ื“ืขื ืฉื˜ืึทื˜ ืคึฟืึทืจ 30 ืกืขืงื•ื ื“ืขืก, ืื™ืจ ืงืขื ืขืŸ ืงืึทื ืคื™ื’ื™ืขืจ ื“ืขื ืžื™ื˜ dirty_expire_centisecs; ื“ืึธ ืื™ืจ ืงืขื ื˜ ื’ืขืคึฟื™ื ืขืŸ ืžืขืจ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ืขื). ื“ืขื ืžื™ื˜ืœ ืึทื– ืึท ื’ืจื•ื™ืก ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹ื“ืึทื˜ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื™ืจืขื˜ืจื™ื™ื•ื•ืึทื‘ืœื™ ืคืึทืจืคืึทืœืŸ ื ืึธืš ืึท ืงืจืึทืš. ื“ื™ ืœื™ื™ื–ื•ื ื’ ืฆื• ื“ืขื ืคึผืจืึธื‘ืœืขื ืื™ื– ืฆื• ื ื•ืฆืŸ fsync() ืื™ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื•ื•ืึธืก ื“ืึทืจืคึฟืŸ ืฆื• ืฆื•ืฉื˜ืขืœืŸ ืกื˜ืึทื‘ื™ืœ ื“ืึทื˜ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ ืื•ืŸ ื‘ืึทืฉื™ืฆืŸ ื–ื™ื™ ื•ื•ื™ ืคื™ืœ ื•ื•ื™ ืžืขื’ืœืขืš ืคื•ืŸ ื“ื™ ืงืึทื ืกืึทืงื•ื•ืขื ืกืึทื– ืคื•ืŸ ืคื™ื™ืœื™ืขืจื–. ืคึฟื•ื ืงืฆื™ืข fsync() ืึทืจื‘ืขื˜ ืคื™ืœ ืžืขืจ ื™ืคื™ืฉืึทื ื˜ืœื™ ืžื™ื˜ ืขืงืกื˜4 ื•ื•ื™ ืžื™ื˜ ืขืงืกื˜3. ื“ื™ ื›ื™ืกืึธืจืŸ ืคื•ืŸ ื“ืขื ืฆื•ื’ืึทื ื’ ืื™ื– ืึทื– ื–ื™ื™ึทืŸ ื ื•ืฆืŸ, ื•ื•ื™ ืคืจื™ืขืจ, ืกืœืึธื•ื– ืึทืจืึธืคึผ ืขื˜ืœืขื›ืข ืึทืคึผืขืจื™ื™ืฉืึทื ื–, ืึทื–ืึท ื•ื•ื™ ื™ื ืกื˜ืึธืœื™ื ื’ ืžื’ื™ืœื”. ื–ืขืŸ ืคืจื˜ื™ื ืื•ื™ืฃ ื“ืขื ื“ืึธ ะธ ื“ืึธ.

ื“ื™ ื“ืจื™ื˜ืข ืคึผืจืึธื‘ืœืขื ื•ื•ืขื’ืŸ fsync(), ืขืจื™ื“ื–ืฉืึทื ื™ื™ื˜ืึทื“ ืื™ืŸ 2018. ื“ืขืจื ืึธืš, ืื™ืŸ ื“ื™ ืคืจื™ื™ืžื•ื•ืขืจืง ืคื•ืŸ ื“ื™ PostgreSQL ืคึผืจื•ื™ืขืงื˜, ืขืก ืื™ื– ื’ืขืคื•ื ืขืŸ ืึทื– ืื•ื™ื‘ ื“ื™ ืคึฟื•ื ืงืฆื™ืข fsync() ื’ืขืคึผืœืึธื ื˜ืขืจื˜ ืึท ื˜ืขื•ืช, ืขืก ืžืึทืจืงืก "ืฉืžื•ืฆื™ืง" ื‘ืœืขื˜ืขืจ ื•ื•ื™ "ืจื™ื™ืŸ". ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ื“ื™ ืคืืœื’ืขื ื“ืข ืจื•ืคื˜ fsync() ื˜ืึธืŸ ื’ืึธืจื ื™ืฉื˜ ืžื™ื˜ ืึทื–ืึท ื‘ืœืขื˜ืขืจ. ื•ื•ื™ื™ึทืœ ืคื•ืŸ ื“ืขื, ืžืึทื“ืึทืคื™ื™ื“ ื‘ืœืขื˜ืขืจ ื–ืขื ืขืŸ ืกื˜ืึธืจื“ ืื™ืŸ ื–ื›ึผืจื•ืŸ ืื•ืŸ ืงื™ื™ื ืžืึธืœ ื’ืขืฉืจื™ื‘ืŸ ืฆื• ื“ื™ืกืง. ื“ืึธืก ืื™ื– ืึท ืคืึทืงื˜ื™ืฉ ื•ืžื’ืœื™ืง, ื•ื•ื™ื™ึทืœ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื•ื•ืขื˜ ื˜ืจืึทื›ื˜ืŸ ืึทื– ืขื˜ืœืขื›ืข ื“ืึทื˜ืŸ ื–ืขื ืขืŸ ื’ืขืฉืจื™ื‘ืŸ ืฆื• ื“ื™ืกืง, ืึธื‘ืขืจ ืื™ืŸ ืคืึทืงื˜ ืขืก ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ. ืื–ืขืœื›ืข ื“ื•ืจื›ืคืืœืŸ fsync() ื–ืขื ืขืŸ ื–ืขืœื˜ืŸ, ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื™ืŸ ืึทื–ืึท ืกื™ื˜ื•ืึทื˜ื™ืึธื ืก ืงืขื ืขืŸ ื˜ืึธืŸ ื›ึผืžืขื˜ ื’ืึธืจื ื™ืฉื˜ ืฆื• ืงืึทืžื‘ืึทื˜ ื“ื™ ืคึผืจืึธื‘ืœืขื. ื“ื™ ื˜ืขื’, ื•ื•ืขืŸ ื“ืึธืก ื›ืึทืคึผืึทื ื–, PostgreSQL ืื•ืŸ ืื ื“ืขืจืข ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืงืจืึทืš. ื“ืึธ, ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ "ืงืขื ืขืŸ ืึทืคึผืคึผืœื™ืงืึทื˜ื™ืึธื ืก ืฆื•ืจื™ืงืงืจื™ื’ืŸ ืคื•ืŸ ืคืกื™ื ืง ืคื™ื™ืœื™ืขืจื–?", ื“ืขื ืคึผืจืึธื‘ืœืขื ืื™ื– ื™ืงืกืคึผืœืึธืจื“ ืื™ืŸ ื“ืขื˜ืึทืœ. ื“ืขืจื•ื•ื™ื™ึทืœ ื“ืขืจ ื‘ืขืกื˜ืขืจ ืœื™ื™ื–ื•ื ื’ ืฆื• ื“ืขื ืคึผืจืึธื‘ืœืขื ืื™ื– ืฆื• ื ื•ืฆืŸ ื“ื™ืจืขืงื˜ ื™ / ืึธ ืžื™ื˜ ื“ื™ ืคืึธืŸ O_SYNC ืึธื“ืขืจ ืžื™ื˜ ืึท ืคืึธืŸ O_DSYNC. ืžื™ื˜ ื“ืขื ืฆื•ื’ืึทื ื’, ื“ื™ ืกื™ืกื˜ืขื ื•ื•ืขื˜ ื‘ืึทืจื™ื›ื˜ ืขืจืจืึธืจืก ื•ื•ืึธืก ืงืขืŸ ืคึผืึทืกื™ืจืŸ ื•ื•ืขืŸ ืคึผืขืจืคืึธืจืžื™ื ื’ ืกืคึผืขืฆื™ืคื™ืฉ ื“ืึทื˜ืŸ ืฉืจื™ื™ึทื‘ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื–, ืึธื‘ืขืจ ื“ืขื ืฆื•ื’ืึทื ื’ ืจื™ืงื•ื•ื™ื™ืขืจื– ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืฆื• ืคื™ืจืŸ ื“ื™ ื‘ืึทืคืขืจื– ื–ื™ืš. ืœื™ื™ืขื ืขืŸ ืžืขืจ ื•ื•ืขื’ืŸ ืื™ื ื“ืึธ ะธ ื“ืึธ.

ืขืคืŸ ื˜ืขืงืขืก ืžื™ื˜ ื“ื™ O_SYNC ืื•ืŸ O_DSYNC ืคืœืึทื’ืก

ื–ืืœ ืก ืฆื•ืจื™ืงืงื•ืžืขืŸ ืฆื• ื“ื™ ื“ื™ืกืงื•ืกื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืœื™ื ื•ืงืก ืžืขืงืึทื ื™ื–ืึทืžื– ื•ื•ืึธืก ืฆื•ืฉื˜ืขืœืŸ ืคึผืขืจืกื™ืกื˜ืขื ื˜ ื“ืึทื˜ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ. ื ื™ื™ืžืœื™, ืžื™ืจ ื–ืขื ืขืŸ ื’ืขืจืขื“ื˜ ื•ื•ืขื’ืŸ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ ืคืึธืŸ O_SYNC ืึธื“ืขืจ ืคืึธืŸ O_DSYNC ื•ื•ืขืŸ ืขืคืŸ ื˜ืขืงืขืก ื ื™ืฆืŸ ืกื™ืกื˜ืขื ืจื•ืคืŸ ืขืคืขื ืขืŸ (). ืžื™ื˜ ื“ืขื ืฆื•ื’ืึทื ื’, ื™ืขื“ืขืจ ื“ืึทื˜ืŸ ืฉืจื™ื™ึทื‘ืŸ ืึธืคึผืขืจืึทืฆื™ืข ืื™ื– ื’ืขื˜ืืŸ ื•ื•ื™ ื ืึธืš ื™ืขื“ืขืจ ื‘ืึทืคึฟืขืœ write() ื“ื™ ืกื™ืกื˜ืขื ืื™ื– ื’ืขื’ืขื‘ืŸ, ืจื™ืกืคึผืขืงื˜ื™ื•ื•ืœื™, ืงืึทืžืึทื ื“ื– fsync() ะธ fdatasync(). ื“ื™ POSIX ืกืคึผืขืกืึทืคืึทืงื™ื™ืฉืึทื ื– ื“ืึธืก ืื™ื– ื’ืขืจื•ืคึฟืŸ "Synchronized I/O File Integrity Completion" ืื•ืŸ "Data Integrity Completion". ื“ืขืจ ื”ื•ื™ืคึผื˜ ืžื™ื™ึทืœืข ืคื•ืŸ โ€‹โ€‹ื“ืขื ืฆื•ื’ืึทื ื’ ืื™ื– ืึทื– ื‘ืœื•ื™ื– ืื™ื™ืŸ ืกื™ืกื˜ืขื ืจื•ืคืŸ ื“ืึทืจืฃ ื–ื™ื™ืŸ ืขืงืกืึทืงื™ื•ื˜ืึทื“ ืฆื• ืขื ืฉื•ืจ ื“ืึทื˜ืŸ ืึธืจื ื˜ืœืขื›ืงื™ื™ึทื˜, ืื•ืŸ ื ื™ืฉื˜ ืฆื•ื•ื™ื™ (ืœืžืฉืœ - write() ะธ fdatasync()). ื“ืขืจ ื”ื•ื™ืคึผื˜ ื›ื™ืกืึธืจืŸ ืคื•ืŸ ื“ืขื ืฆื•ื’ืึทื ื’ ืื™ื– ืึทื– ืึทืœืข ืฉืจื™ื™ึทื‘ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื ื™ืฆืŸ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ื˜ืขืงืข ื“ื™ืกืงืจื™ืคึผื˜ืึธืจ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืกื™ื ื’ืงืจืึทื ื™ื™ื–ื“, ื•ื•ืึธืก ืงืขื ืขืŸ ื‘ืึทื’ืจืขื ืขืฆืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืกื˜ืจื•ืงื˜ื•ืจ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืงืึธื“.

ื ื™ืฆืŸ ื“ื™ืจืขืงื˜ ื™ / ืึธ ืžื™ื˜ ื“ื™ ืึธ_ื“ื™ืจืขืงื˜ ืคืึธืŸ

ืกื™ืกื˜ืขื ืจื•ืคืŸ 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 ืื•ื™ืฃ ืึท ืœื™ื ื•ืงืก 5.4 / ื•ื‘ื•ื ื˜ื• 20.04 ืกื™ืกื˜ืขื. ื“ืขืจ ืฆื•ื’ืึทื ื’ ื–ืึธืœ ื–ื™ื™ืŸ ืžืขืจ ืขืคืขืงื˜ื™ื•ื•, ื•ื•ื™ื™ึทืœ ืขืก ืฉืจื™ื™ื‘ื˜ ื“ื™ ืžื™ื ื™ืžื•ื ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ืึทื˜ืŸ ืฆื• ื“ื™ืกืง ืื•ืŸ ื ื™ืฆื˜ ืื™ื™ืŸ ืึธืคึผืขืจืึทืฆื™ืข, ื ื™ืฉื˜ ืฆื•ื•ื™ื™ (ืฉืจื™ื™ึทื‘ืŸ ืื•ืŸ ื’ืœื™ื™ึทืš ื“ื™ ืงืึทืฉ). ืื™ืš ื’ืขืคื•ื ืขืŸ ืึท ืœื™ื ืง ืฆื• patch 2018 ืงืขืจืŸ ื•ื•ืึธืก ื™ืžืคึผืœืึทืžืึทื ืฅ ื“ืขื ืžืขืงืึทื ื™ื–ืึทื. ืขืก ืื™ื– ืขื˜ืœืขื›ืข ื“ื™ืกืงื•ืกื™ืข ื•ื•ืขื’ืŸ ืึทืคึผืœื™ื™ื™ื ื’ ื“ืขื ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืฆื• ืื ื“ืขืจืข ืคื™ืœืขืกื™ืกื˜ืขืžืก, ืึธื‘ืขืจ ื•ื•ื™ ื•ื•ื™ื™ึทื˜ ื•ื•ื™ ืื™ืš ื•ื•ื™ืกืŸ, XFS ืื™ื– ื“ืขืจ ื‘ืœื•ื™ื– ืคื™ืœืขืกื™ืกื˜ืขื ื•ื•ืึธืก ืฉื˜ื™ืฆื˜ ืขืก ื‘ื™ื– ืื™ืฆื˜.

sync_file_range() ืคึฟื•ื ืงืฆื™ืข

ืœื™ื ื•ืงืก ื”ืื˜ ืึท ืกื™ืกื˜ืขื ืจื•ืคืŸ sync_file_range(), ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื•ื™ืกืฉืขืคึผืŸ ื‘ืœื•ื™ื– ื˜ื™ื™ืœ ืคื•ืŸ ื“ืขืจ ื˜ืขืงืข ืฆื• ื“ื™ืกืง, ื ื™ืฉื˜ ื“ื™ ื’ืื ืฆืข ื˜ืขืงืข. ื“ืขืจ ืจื•ืฃ ื™ื ื™ืฉื™ืึทืฅ ืึท ื™ื™ืกื™ื ื’ืงืจืึทื ืึทืก ื’ืœื™ื™ึทืš ืื•ืŸ ื˜ื•ื˜ ื ื™ืฉื˜ ื•ื•ืึทืจื˜ืŸ ืคึฟืึทืจ ืขืก ืฆื• ืคืึทืจืขื ื“ื™ืงืŸ. ืื‘ืขืจ ืื™ืŸ ื“ืขืจ ืจืขืคึฟืขืจืขื ืฅ ืฆื• sync_file_range() ื“ืขืจ ื‘ืึทืคึฟืขืœ ืื™ื– ื’ืขื–ืื’ื˜ ืฆื• ื–ื™ื™ืŸ "ื–ื™ื™ืขืจ ื’ืขืคืขืจืœืขืš". ืขืก ืื™ื– ื ื™ืฉื˜ ืจืขืงืึทืžืขื ื“ื™ื“ ืฆื• ื ื•ืฆืŸ ืขืก. ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืื•ืŸ ื“ื™ื™ื ื“ื–ืฉืขืจื– sync_file_range() ื–ื™ื™ืขืจ ื’ื•ื˜ ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ืŸ this ืžืึทื˜ืขืจื™ืึทืœ. ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ, ื“ืขื ืจื•ืฃ ืกื™ืžื– ืฆื• ื ื•ืฆืŸ RocksDB ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื•ื•ืขืŸ ื“ืขืจ ืงืขืจืŸ ืคืœื•ืฉื™ื– "ื’ืจืึธื‘" ื“ืึทื˜ืŸ ืฆื• ื“ื™ืกืง. ืึธื‘ืขืจ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ืฆื• ืขื ืฉื•ืจ ืกื˜ืึทื‘ื™ืœ ื“ืึทื˜ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ, ืขืก ืื™ื– ืื•ื™ืš ื’ืขื ื™ืฆื˜ fdatasync(). ื“ื™ ืงืึธื“ RocksDB ื”ืื˜ ืขื˜ืœืขื›ืข ื˜ืฉื™ืงืึทื•ื•ืข ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ ืื•ื™ืฃ ื“ืขื ื˜ืขืžืข. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืขืก ืงื•ืงื˜ ื•ื•ื™ ื“ื™ ืจื•ืคืŸ sync_file_range() ื•ื•ืขืŸ ื ื™ืฆืŸ ZFS ื˜ื•ื˜ ื ื™ืฉื˜ ื•ื™ืกืฉืขืคึผืŸ ื“ืึทื˜ืŸ ืฆื• ื“ื™ืกืง. ื“ืขืจืคืึทืจื•ื ื’ ื“ืขืจืฆื™ื™ืœื˜ ืžื™ืจ ืึทื– ืจืึทืจืขืœื™ ื’ืขื•ื•ื™ื™ื ื˜ ืงืึธื“ ืงืขืŸ ืึทื ื˜ื”ืึทืœื˜ืŸ ื‘ืึทื’ื–. ื“ืขืจื™ื‘ืขืจ, ืื™ืš ื•ื•ืึธืœื˜ ืจืขืงืึธืžืขื ื“ื™ืจืŸ ืฆื• ื ื•ืฆืŸ ื“ืขื ืกื™ืกื˜ืขื ืจื•ืคืŸ ืกื™ื™ึทื“ืŸ ืœืขื’ืึทืžืจืข ื ื™ื™ื˜ื™ืง.

ืกื™ืกื˜ืขื ืจื•ืคื˜ ืฆื• ื”ืขืœืคืŸ ืขื ืฉื•ืจ ื“ืึทื˜ืŸ ืคึผืขืจืกื™ืกื˜ืึทื ืก

ืื™ืš ื‘ื™ืŸ ื’ืขืงื•ืžืขืŸ ืฆื• ื“ื™ ืžืกืงื ื ืึทื– ืขืก ื–ืขื ืขืŸ ื“ืจื™ื™ ืึทืคึผืจืึธื•ื˜ืฉื™ื– ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื• ื“ื•ืจื›ืคื™ืจืŸ ืคึผืขืจืกื™ืกื˜ืขื ื˜ ื™ / ืึธ ืึทืคึผืขืจื™ื™ืฉืึทื ื–. ื–ื™ื™ ืึทืœืข ื“ืึทืจืคืŸ ืึท ืคื•ื ืงืฆื™ืข ืจื•ืคืŸ 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(). ืื™ืš ื›ืึธืฉืขื“ ืึทื– ื“ื™ ืคื•ื ื˜ ื“ืึธ ืื™ื– ืึทื– ืžื™ื˜ ื“ืขื ืฆื•ื’ืึทื ื’, ื“ื™ ืคืึทืงื˜ ืึทื– ื•ื•ื™ื™ื ื™ืงืขืจืข ืกื™ืกื˜ืขื ืจื•ืคื˜ ืฆื• ืกืึธืœื•ื•ืข ื“ื™ ื–ืขืœื‘ืข ืึทืจื‘ืขื˜ (ืื™ื™ืŸ ืจื•ืคืŸ ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ืฆื•ื•ื™ื™) ืฉืคึผื™ืœื˜ ืึท ืจืึธืœืข. ืึธื‘ืขืจ ื“ืขืจ ืคืึธืจืฉื˜ืขืœื•ื ื’ ื—ื™ืœื•ืง ืื™ื– ื–ื™ื™ืขืจ ืงืœื™ื™ืŸ, ืึทื–ื•ื™ ืื™ืจ ืงืขื ืขืŸ ืœื™ื™ื›ื˜ ืื™ื’ื ืึธืจื™ืจืŸ ืขืก ืื•ืŸ ื ื•ืฆืŸ ืขืคึผืขืก ืื™ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื•ื•ืึธืก ื˜ื•ื˜ ื ื™ืฉื˜ ืคื™ืจืŸ ืฆื• ื“ื™ ืงืึทืžืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคื•ืŸ ื–ื™ื™ึทืŸ ืœืึธื’ื™ืง.

ืื•ื™ื‘ ืื™ืจ ื–ืขื ื˜ ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืื™ืŸ ื“ื™ ื˜ืขืžืข ืคื•ืŸ โ€‹โ€‹ืกืึทืกื˜ื™ื™ื ืึทื‘ืึทืœ ื“ืึทื˜ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ, ื“ืึธ ื–ืขื ืขืŸ ืขื˜ืœืขื›ืข ื ื•ืฆื™ืง ืžืึทื˜ืขืจื™ืึทืœืก:

  • ืื™ืš / ืึธ ืึทืงืกืขืก ืžืขื˜ื”ืึธื“ืก - ืึทืŸ ืื™ื‘ืขืจื‘ืœื™ืง ืคื•ืŸ ื“ื™ ื‘ืึทืกื™ืงืก ืคื•ืŸ ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ / ืจืขื–ื•ืœื˜ืึทื˜ ืžืขืงืึทื ื™ื–ืึทืžื–.
  • ื™ื ืฉื•ืจื™ื ื’ ื“ืึทื˜ืŸ ืจื™ื˜ืฉืึทื– ื“ื™ืกืง - ืึท ื“ืขืจืฆื™ื™ืœื•ื ื’ ื•ื•ืขื’ืŸ ื•ื•ืึธืก ื›ืึทืคึผืึทื ื– ืฆื• ื“ื™ ื“ืึทื˜ืŸ ืื•ื™ืฃ ื“ื™ ื•ื•ืขื’ ืคื•ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืฆื• ื“ื™ ื“ื™ืกืง.
  • ื•ื•ืขืŸ ื–ืึธืœ ืื™ืจ ืคืกื™ื ืง ื“ื™ ืžื™ื˜ Directory - ื“ืขืจ ืขื ื˜ืคืขืจ ืฆื• ื“ื™ ืงืฉื™ื ืคื•ืŸ ื•ื•ืขืŸ ืฆื• ืฆื•ืœื™ื™ื’ืŸ fsync() ืคึฟืึทืจ ื“ื™ืจืขืงื˜ืขืจื™ื–. ืื™ืŸ ืึท ื ืึทื˜ืฉืขืœ, ืขืก ื˜ื•ืจื ืก ืื•ื™ืก ืึทื– ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื˜ืึธืŸ ื“ืึธืก ื•ื•ืขืŸ ืื™ืจ ืฉืึทืคึฟืŸ ืึท ื ื™ื™ึทืข ื˜ืขืงืข, ืื•ืŸ ื“ื™ ืกื™ื‘ื” ืคึฟืึทืจ ื“ืขื ืจืขืงืึธืžืขื ื“ืึทืฆื™ืข ืื™ื– ืึทื– ืื™ืŸ ืœื™ื ื•ืงืก ืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืคื™ืœืข ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืฆื• ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื˜ืขืงืข.
  • SQL Server ืื•ื™ืฃ ืœื™ื ื•ืงืก: FUA ื™ื ื˜ืขืจื ืึทืœืก - ื“ืึธ ืื™ื– ืึท ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ื•ื•ื™ ืคึผืขืจืกื™ืกื˜ืขื ื˜ ื“ืึทื˜ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื™ืŸ SQL Server ืื•ื™ืฃ ื“ื™ ืœื™ื ื•ืงืก ืคึผืœืึทื˜ืคืึธืจืžืข. ืขืก ื–ืขื ืขืŸ ืขื˜ืœืขื›ืข ื˜ืฉื™ืงืึทื•ื•ืข ืงืึทืžืคึผืขืจืึทืกืึทื ื– ืฆื•ื•ื™ืฉืŸ Windows ืื•ืŸ ืœื™ื ื•ืงืก ืกื™ืกื˜ืขื ืจื•ืคื˜ ื“ืึธ. ืื™ืš ื‘ื™ืŸ ื›ึผืžืขื˜ ื–ื™ื›ืขืจ ืึทื– ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื“ืึทื ืง ืฆื• ื“ืขื ืžืึทื˜ืขืจื™ืึทืœ ืึทื– ืื™ืš ื’ืขืœืขืจื ื˜ ื•ื•ืขื’ืŸ ื“ื™ FUA ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืคื•ืŸ XFS.

ื”ืึธื‘ืŸ ืื™ืจ ืืœืฅ ืคืึทืจืคืึทืœืŸ ื“ืึทื˜ืŸ ื•ื•ืึธืก ืื™ืจ ื’ืขื“ืึทื ืง ืื™ื– ืกื™ืงื™ื•ืจืœื™ ืกื˜ืึธืจื“ ืื•ื™ืฃ ื“ื™ืกืง?

ื“ื•ืจืึทื‘ืึทืœ ื“ืึทื˜ืึท ืกื˜ืึธืจื™ื“ื–ืฉ ืื•ืŸ ืœื™ื ื•ืงืก ื˜ืขืงืข ืึทืคึผื™ืก

ื“ื•ืจืึทื‘ืึทืœ ื“ืึทื˜ืึท ืกื˜ืึธืจื™ื“ื–ืฉ ืื•ืŸ ืœื™ื ื•ืงืก ื˜ืขืงืข ืึทืคึผื™ืก

ืžืงื•ืจ: www.habr.com