I don't think that either MySQL or PostgreSQL use O_DIRECT; I just grepped
the source and didn't find it. They can't use mmap() because it uses up too
much process address space.
It's true that commercial databases mostly do their own scheduling and
caching, and if they are the only thing running on your system and you tune
them right, that works. But it's not necessarily a good thing. If there
are other processes on your system, there would be a benefit if the DBMS
could inform the operating system of its intentions.
A posix_fadvise() call would be a start, but you could potentially go beyond
that. For some interesting ideas, see
Seltzer, M., Small, C., Smith, K., "The Case for Extensible Operating
Systems",
Harvard University Center for Research in Computing Technology TR16 -95
(July 1995).
http://citeseer.nj.nec.com/article/seltzer95case.html
Ken Hirsch
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/