wiredtiger/wiredtiger — pull request #547 by keithbostic (2013-05-17 16:08:37+00:00)
Title: more O_DIRECT changes.

Michael, this is one approach to fixing the bug Mark reported (I obviously haven't reproduced it, though).

What I think is going on is that direct I/O on his system disallows any write that's smaller than 4KB (which makes sense, I guess, since such writes are known to have problems). Obviously, he could configure allocation_size=4KB, but that won't work for our default files, in this case, WiredTiger.wt.

What I did was require the page allocation sizes after direct I/O is configured be both at least as large as the buffer alignment, and a multiple of the buffer alignment. The latter might be overkill, but I don't see why that would be sure to work when blocks smaller than the alignment size don't work.