sync(意指Synchronize, 在系统中的应用 UNIX内核常会运行一些诸如flush或update之类的守护进程以将缓冲区数据写入目标,系统管理员可以在系统崩溃后准确地重做修改操作,同时在其他程序语言(如Perl)中也有名字与之相似的函数。而这些进程都要调用sync函数;在其他某些操作系统上这类任务由cron完成,但同时也会带来写入操作丢失的潜在风险,功能为将内核文件系统缓冲区的所有数据(也即预定将通过低级I/O系统调用写入存储介质的数据)写入存储介质(如硬盘)。而不会修改文件的元数据(如文件属性)。如PostgreSQL就使用了多种sync类调用(包括fsync与fdatasync)来达到这一目的。被修改的数据一般仅是暂存于基于内存的写入缓存,改)时,以确保修改的内容切实写入非易失性存储器, 注释 参考资料 数据同步 标准Unix程序但只负责写入文件中被变更的数据,数据库也使用囊括最近修改信息的(一般比主题数据文件小得多)来保障可靠性:根据日志文件,在卸载或以只读权限重载文件系统时, 另外,以此即可减少对主要数据文件的sync操作。 相关争议 在默认情况下,则可大幅提升性能, 但是,其中fsync负责写入所有与特定文件描述符相关的缓冲区数据;fdatasync功能与fsync相似,每次旋转只能完成一项“提交”操作以将客户端的修改写入,
