Under the hood in ZFS, writes are committed using either shadow paging or
logging, as I understand it. So I believe that I mean to ask whether a
write(2), pushed to ZPL, and pushed on down the stack, can be split into
multiple transactions? Or, instead, is it guaranteed to be committed in a
single transaction, and so committed atomically?
A write made through the ZPL (zfs_write()) will be broken into transactions
that contain at most 128KB user data. So a large write could well be split
across transaction groups, and thus committed separately.
zfs-discuss mailing list