Re: PATCH: Raw device IO for 2.1.131

Matthias Urlichs (smurf@noris.de)
16 Dec 1998 23:40:35 +0100


Matthew Brown <mbrown@smartpages.com> writes:
> Harald Milz writes:
> > But there _is_ another technical issue nobody mentioned so far in this
> > thread. Using e.g. Oracle on raw devices saves you from doing a fsck in a
> > high availability failover situation,
>
> Well, you could still use a partition like /dev/sda1 for a database --
> the only issue is that this goes through the buffer cache instead of
> reading or writing directly to the disk.
>
Wrong. Since the buffer cache makes no guarantee at all about which order
your data is written, and since you cannot do a partial fsync(), there is
no integrity guarantee to be had here. (Syncing the whole thing at the end
of every transaction is obviously out of the question.)

You could probably open a log file with O_SYNC and trace all changes there,
but you'd still need some kind of checkpointing.

All of this, IMHO, just shows that databases are ugly. I mean, look at the
difference between Oracle and mysql. Oracle is everything including the
kitchen sink while mysql doesn't even have transactions (just atomic
updates). A new connection to this here Oracle server takes about a second.
A complete connect/select-something-simple/disconnect to a mysql server
on the same machine takes 1/100th of a second. Oracle costs ten times as
much as mysql (assuming you need to pay for mysql at all, which is not
always true, and besides it's Open Source).

Granted that Oracle has tons of features mysql doesn't have, but that
doesn't exactly justify it being 100 times slower...

-- 
Matthias Urlichs  |  noris network GmbH   |   smurf@noris.de  |  ICQ: 20193661
The quote was selected randomly. Really.    |      http://www.noris.de/~smurf/
-- 
My neighbor has a circular driveway.
He can't get out.
		-- Steve Wright

- 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/