CamIO : declaring flexible and performant application

Discussion of input/output (I/O) performance in the systems research community has centred around the interfaces between user and kernel space, and those between kernelspace and hardware. Work in this area often focuses on managing buffers to achieve zero-copy performance while maintaining isolation [1, 3–5]. However, the question of how to use existing I/O primitives inside applications while maintaining flexibility to alternate between mechanisms has received little attention. The mantra seems to be that “the developer will figure out the right mechanism”. We are not so sure.