What I'd like to get to is to discuss that buffered IO basically sucks for databases with high throughput, and direct IO sucks for databases that aren't individually well tuned, and is not adaptive to memory pressure at all.
Buffered IO is slow, until recently only synchronous, has double buffering issues and writeback is hard to control.
Direct IO requires that the application's equivalent of the page-cache is well tuned for the workload - but most installations don't have DBAs to do so, and in a lot of environments it's unrealistic to give all databases the peak required memory. In contrast to that the kernel page-cache adapts reasonably to changing workloads, caching data for the applications that need it most.
Input both from the developers of other databases and from the kernel side would be very welcome.
|I confirm that I am already registered for LPC 2019||Yes|
|I agree to abide by the anti-harassment policy||Yes|