# How fsync affects data durability, latency, and group commit

DevFeed: [How fsync affects data durability, latency, and group commit](<https://devfeed.tech/articles/fsync-is-the-only-thing-between-you-and-data-loss-and-it-is-slower-than-you-think-39589.md>)

Original publisher: [Read original article](<https://ankit-rana.com/logs/37-fsync-durability-cost-group-commit/>)

Author: hello@ankit-rana.com

Published: 2026-08-14T00:00:00Z

Content type: article

Language: en

Sources: [Ankit Rana | Mechanical Sympathy](<https://devfeed.tech/sources/ankit-rana-mechanical-sympathy.md>)

Topics: [data](<https://devfeed.tech/topics/data.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [NVMe](<https://devfeed.tech/topics/nvme.md>), [Replication](<https://devfeed.tech/topics/replication.md>)

Tags: [databases](<https://devfeed.tech/tags/databases.md>), [durability](<https://devfeed.tech/tags/durability.md>), [flush](<https://devfeed.tech/tags/flush.md>), [fsync](<https://devfeed.tech/tags/fsync.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [replication](<https://devfeed.tech/tags/replication.md>), [ssd](<https://devfeed.tech/tags/ssd.md>), [stack](<https://devfeed.tech/tags/stack.md>), [storage](<https://devfeed.tech/tags/storage.md>)

## AI overview

This article explains that a successful write() may leave data only in the kernel page cache, so a power loss can destroy it. It describes fsync as the operation that pushes data to the device, discusses its latency cost, and explains how group commit amortizes the synchronization barrier. It also distinguishes disk durability from replication across failure domains.

## Source excerpt

A successful write() only copies your data into the kernel page cache, where a power loss destroys it. Only fsync pushes it to the device, and because fsync is a barrier rather than a write, a system that syncs once per commit is capped at roughly one divided by the fsync latency, no matter how fast the rest of the stack is. Group commit exists to amortise that barrier, and replication solves a different failure domain than fsync does, which is why acks=all does not mean the data is on any disk.