Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: raw devices, how to?

Re: raw devices, how to?

From: Noons <wizofoz2k_at_yahoo.com.au.nospam>
Date: Wed, 2 Jul 2003 20:06:09 +1000
Message-ID: <3f02b072$0$5430$afc38c87@news.optusnet.com.au>


"Volker Hetzer" <volker.hetzer_at_ieee.org> wrote in message news:bdu8in$8am$1_at_news.fujitsu-siemens.com...

> I've no idea but I thought that oracle somehow doesn't use the fs
> system calls. If it still seeks and tells, what's the use?
>

IIRC, it uses the read() and write() low-level I/O calls, regardless of file being cooked or raw. What determines if file is raw or not is the device name itself, which has to be opened as a file and associated with a file unit for use with the above calls, using the normal fopen(). Unix drivers then use raw addressing instead of asynch Unix buffer indirection. There is a flag on ioctl block that defines if file has raw or cooked access.

IOW, it's handled by Unix I/O mechanism itself. Not a different I/O call by Oracle. Although direct buffer offset access is of course then not possible. On the other hand, I/O goes directly to the SGA instead of to the Unix buffer cache. Which saves CPU and memory cycles copying buffers between the two. Around 20% CPU save on a busy I/O system. Typically, if you keep a gander on the sar stats, you see the system wait counter drop significantly with raw I/O. With (hopefully) a corresponding jump in the user counter.

--
Cheers
Nuno Souto
wizofoz2k_at_yahoo.com.au.nospam
Received on Wed Jul 02 2003 - 05:06:09 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US