Effects of buffering semantics on I/O performance