RM:
  > I do not understand - why in some cases with smaller block writing
  > block twice could be actually faster than doing it once every time?
  > I definitely am missing something here...

In addition to what Neil said, I want to add that

when an application O_DSYNC write cover only parts of a file
record you have the choice of issuing a log I/O that
contains only the newly written data or do a full record I/O 
(using the up-to-date cached record) along with a small log
I/O to match.

So if you do 8K writes to a file stored using 128K records,
you truly want each 8K writes to go to the log and then
every txg, take the state of a record and I/O that. You
certainly don't want to I/O 128K every 8K writes.

But then if you do a 100K write, it's not as clear a win.
Should I cough up the full 128K I/O now, hoping that the
record will not be modified further before the txg clock
hits ? That's part of what goes into zfs_immediate_write_sz.

And even for full record writes, there are some block
allocation issues that come into play and complicates things 
further.

-r

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to