[comp.unix.aix] Speedy Disk I/O

benson@odi.com (Benson I. Margulies) (11/26/90)

I've been reading about logical volumes. 

Say one was responsible for porting an application to AIX 3.1 that
needed to do fast disk I/O. Say that the application was accustomed,
on Other Unix Systems, to using the character device interface to a
disk partition to get optimal performance, and perhaps even knew how
to read tracks or cylinders. (not so easy on a SCSI disk, but let that
pass).

Now, on AIX, one has two choices. If one can monopolize an entire
disk, one can use the hdisk device, and proceed as in the past.
An entire disk is a lot. To get less than a disk, one must take 
a logical volume.

It appears that there is no such thing as a contiguous logical volume,
so any track and cylinder cleverness would be right out, right?
A logical volume can span multiple physical volumes. A Smart Program
would try to take advantage of this by overlapping seeks between
the disks. Is there as way to know which PP's are on which disk?

Logical volumes can expand. Would a polite data storage program grow
logical volumes automatically, or provide out-of-space errors until
the administrator chlv'd some more space into existence?

Has anyone out there any useful experience with all of this?

-- 
Benson I. Margulies

hbergh@oracle.nl (Herbert van den Bergh) (11/27/90)

In article <1990Nov26.011745.9448@odi.com> benson@odi.com (Benson I. Margulies) writes:
>I've been reading about logical volumes. 

Well, we did more than that...

>Say one was responsible for porting an application to AIX 3.1 that
>needed to do fast disk I/O. 

Like a database ? Or a sequential log file? ...

>Now, on AIX, one has two choices. If one can monopolize an entire
>disk, one can use the hdisk device, and proceed as in the past.

We tested this. Our database writes to a sequential log file which has to
be synced after each write. On non-AIX3 systems, we use raw disk partitions
to achieve this. The disk isn't used for anything else to make sure the
heads don't move between writes.
On AIX 3.1, using a raw disk device this gives a 15% performance LOSS
compared to writing to a file in a Journalled File System
(the file is pre-allocated, the disk the file is on is not used for 
anything else).

>An entire disk is a lot. To get less than a disk, one must take 
>a logical volume.

Things get worse if you use a raw logical volume or a file on a disk that
has paging accesses (executables that get paged in or a paging section).
File access and access to raw logical volumes get worse because the heads 
may be moved between writes. In addition to that, writing to raw logical
volumes seems to confuse the Virtual Memory Manager, so disk access can
no longer be optimized for that device.

>It appears that there is no such thing as a contiguous logical volume,
>so any track and cylinder cleverness would be right out, right?
>A logical volume can span multiple physical volumes. A Smart Program
>would try to take advantage of this by overlapping seeks between
>the disks. Is there as way to know which PP's are on which disk?

I think the VMM is such a smart program. Doing it yourself will not gain
anything.

>Logical volumes can expand. Would a polite data storage program grow
>logical volumes automatically, or provide out-of-space errors until
>the administrator chlv'd some more space into existence?

No comments on this one.

>Has anyone out there any useful experience with all of this?

These are our experiences. I hope they are useful to you. If anyone
has other experiences, please post.

>-- 
>Benson I. Margulies


-- 
Herbert van den Bergh,		Email:	hbergh@oracle.nl, hbergh@oracle.com
ORACLE Europe