Does direct I/O necessarily mean that the POSIX writer lock is bypassed?
I think it may be important to note that the single writer lock can only be bypassed under the conditions laid out in ufs_check_rewrite() - the writes must be to blocks that are already allocated in order to prevent the need to update the data block information in the inode.
Of course, Oracle preallocates blocks on disk anyway, but this is an important distinction that isn't that clear, especially since this post on ufs-discuss suggests that the single writer lock bypass first appeared in Solaris 8 update 3 and not SunOS 2.6 as this article indicates.
As an aside, I'd also be very interested to hear any information regarding the situation with these locks in VxFS.
- Yes, you are correct. The posix writer lock bypass was implemented in S8U3, and was referred to as "concurrent direct I/O". We do talk about that in the paper linked here, lets be sure to update the main page. Thanks, Richard.
- For VxFS, the situation always used to be that posix lock bypass is only implemented in quickio, the main VxFS still has the posix lock.
Thanks for taking care of this, and for the additional info which fits with what I'd hoped. --Ceri