OpenSolaris

Printable Version Enter a New Search
Bug ID 6683293
Synopsis concurrent O_DSYNC writes to a fileset can be much improved over NFS
State 10-Fix Delivered (Fix available in build)
Category:Subcategory kernel:zfs
Keywords
Responsible Engineer Neil Perrin
Reported Against s10u5_fcs
Duplicate Of
Introduced In solaris_nevada
Commit to Fix snv_88
Fixed In snv_88
Release Fixed solaris_nevada(snv_88) , solaris_10u6(s10u6_03) (Bug ID:2162016)
Related Bugs 6478419
Submit Date 2-April-2008
Last Update Date 17-October-2008
Description
O_DSYNC writes over NFS does not lead to having the zp->z_sync_cnt  set
and such zfs_write we're observed to be issued with ioflag of FSYNC (not FDSYNC).

zfs_log_write will thus not mark the itx as synchronous.
The write is nevertheless synched at the end of a zfs_write runinng :

	if (ioflag & (FSYNC | FDSYNC))
		zil_commit(zilog, zp->z_last_itx, zp->z_id);

Large performance degradation (4 to 10X) will be seen for workload that involve
NFS O_DSYNC writes to many different files. Each zil_commit will commit itx
associated with it's own file but not combine with itx from other files.
This will lead to many smaller ZIL transactions with longer global latency.

Over jbod, attached oltp2 benchmark was speed up by 10X.
Over logzilla capable system I saw a 4X increase in performance.
Work Around
N/A
Comments
N/A