词条 | Sync (Unix) |
释义 |
sync is a standard system call in the Unix operating system, which commits all data in the kernel filesystem to non-volatile storage buffers, i.e., data which has been scheduled for writing via low-level I/O system calls. Higher-level I/O layers such as stdio may maintain separate buffers of their own. As a function in C, the The related system call Unix systems typically run some kind of flush or update daemon, which calls the sync function on a regular basis. On some systems, the cron daemon does this, and on Linux it was handled by the pdflush daemon which was replaced by a new implementation and finally removed from linux kernel in 2012.[3] Buffers are also flushed when filesystems are unmounted or remounted read-only{{Citation needed|date=July 2014}}, for example prior to system shutdown. Database useIn order to provide proper durability, databases need to use some form of sync in order to make sure the information written has made it to non-volatile storage rather than just being stored in a memory-based write cache that would be lost if power failed. PostgreSQL for example may use a variety of different sync calls, including Databases also employ transaction log files (typically much smaller than the main data files) that have information about recent changes, such that changes can be reliably redone in case of crash; then the main data files can be synced less often. Error reporting and checkingTo avoid any data loss return values of Performance controversiesHard disks may default to using their own volatile write cache to buffer writes, which greatly improves performance while introducing a potential for lost writes.[11] Tools such as hdparm -F will instruct the HDD controller to flush the on-drive write cache buffer. The performance impact of turning caching off is so large that even the normally conservative FreeBSD community rejected disabling write caching by default in FreeBSD 4.3.[12] In SCSI and in SATA with Native Command Queuing (but not in plain ATA, even with TCQ) the host can specify whether it wants to be notified of completion when the data hits the disk's platters or when it hits the disk's buffer (on-board cache). Assuming a correct hardware implementation, this feature allows the disk's on-board cache to be used while guaranteeing correct semantics for system calls like Firefox 3.0, released in 2008, fsync .[18] He also concedes however (quoting Mike Shaver) that "On some rather common Linux configurations, especially using the ext3 filesystem in the “data=ordered” mode, calling fsync doesn’t just flush out the data for the file it’s called on, but rather on all the buffered data for that filesystem."[19]See also
References1. ^fsync specification 2. ^fdatasync specification 3. ^http://lwn.net/Articles/508212/ 4. ^ {{ cite web | url = https://ftp.osuosl.org/pub/fosdem/2019/K.1.105/postgresql_fsync.mp4 | title = PostgreSQL vs. fsync | access-date = 10 February 2019 | last = Vondra | first = Tomas | date = 2 February 2019 | website = Osuosl Org. | format = mp4 | archive-url = https://web.archive.org/web/20190210111845/https://ftp.osuosl.org/pub/fosdem/2019/K.1.105/postgresql_fsync.mp4 | archive-date = 10 February 2019 | df = dmy-all }} 5. ^PostgreSQL Reliability and the Write-Ahead Log 6. ^Tuning PostgreSQL WAL Synchronization {{Webarchive|url=https://web.archive.org/web/20091125043111/http://www.westnet.com/~gsmith/content/postgresql/TuningPGWAL.htm |date=2009-11-25 }} 7. ^https://lwn.net/Articles/457667/ 8. ^https://lwn.net/Articles/752063/ 9. ^https://lwn.net/Articles/724307/ 10. ^https://patchwork.kernel.org/patch/10358111/ 11. ^Write-Cache Enabled? 12. ^FreeBSD Handbook — Tuning Disks 13. ^{{cite web|author=Marshall Kirk McKusick|url=http://queue.acm.org/detail.cfm?id=2367378 |title=Disks from the Perspective of a File System - ACM Queue |publisher=Queue.acm.org |date= |accessdate=2014-01-11}} 14. ^{{cite book|author=Gregory Smith|title=PostgreSQL 9.0: High Performance|year=2010|publisher=Packt Publishing Ltd|isbn=978-1-84951-031-8|page=78}} 15. ^http://www.spinics.net/lists/linux-scsi/msg61241.html 16. ^http://lkml.indiana.edu/hypermail/linux/kernel/0702.2/1358.html 17. ^http://shaver.off.net/diary/2008/05/25/fsyncers-and-curveballs/ 18. ^http://thunk.org/tytso/blog/2009/03/15/dont-fear-the-fsync/ 19. ^http://thunk.org/tytso/blog/2009/03/12/delayed-allocation-and-the-zero-length-file-problem/ External links
5 : C POSIX library|Data synchronization|Standard Unix programs|Unix file system-related software|System calls |
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。