Re: Should raw I/O be added to the kernel?

Alessandro Suardi (asuardi@uninetcom.it)
Sat, 23 Jan 1999 18:00:14 +0100


Jason Froebe wrote:
>
> Hi,
>
> "Stephen C. Tweedie" wrote:
>
> > Interesting to hear you say this, since that is _precisely_ what you get
> > if you are running a large DB like Oracle or Informix on raw devices.
> > All raw devices are _necessarily_ synchronous, and yet these devices are
> > suggested as a means of improving performance.
>
> NO! Not to improve performance but to improve recoverability of databases.
> One will get 2 - 3 times better performance on a filesystem but we can't
> guarantee that the write has been completed.
>

#include <std_disclaimer.h>

Being log-based Oracle is happy enough to have its redo logs on raw devices,
the database files can stay on filesystem. However, the combo of Oracle's
buffer cache management on raw device usually gives a better performance
than filesystem buffering because the LRU management of the database's own
buffer cache isn't impartial. Knowing that certain data blocks are coming
from a full table scan implies that these blocks do not go on the MRU end
of the LRU list. Writing is of course another matter, but you'll probably
find that databases are written less often than they're read :)

Also, very large volumes of data simply shouldn't be cached. When your EMC
box deals with the monthly rollup of 20GB of tables, it is clear that the
usually lovely 4GB RAID cache is something you would want to bypass.

Tuning depends :)

--alessandro <asuardi@uninetcom.it> <asuardi@it.oracle.com>

Linux 2.0.36/2.2.0-final glibc-2.0.7-29 gcc-2.8.1 binutils-2.9.1.0.19a

"I hate bugs which disappear just as soon as you start trying to
narrow things down." -- Stephen Tweedie

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/