Newsgroups: comp.periphs.scsi
Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!uunet!munnari.oz.au!manuel!cmf851
From: cmf851@anu.oz.au (Albert Langer)
Subject: Re: Random Access DAT
Message-ID: <1991Jun25.165330.28323@newshost.anu.edu.au>
Sender: news@newshost.anu.edu.au
Organization: Computer Services Centre, Australian National University, Canberra, Australia.
References: <1991Jun23.072002.25736@odin.corp.sgi.com> <1991Jun24.155738.17279@newshost.anu.edu.au> <1991Jun25.072303.27866@odin.corp.sgi.com>
Date: Tue, 25 Jun 91 16:53:30 GMT

In article <1991Jun25.072303.27866@odin.corp.sgi.com> olson@anchor.esd.sgi.com 
(Dave Olson) writes:

>[...]  You would also run into a problem
>once you got past 2Gb in capacity, since on most 32 bit systems,
>off_t (lseek's 3rd arg type) is a signed 31 bit number...
>
>'Just' adding the buffering layer is non-trivial, unless
>it exactly matches the semantics of the existing block buffering
>layer (disk drives).  Unfortunately, tape does not.  If you
>were willing to live with a readonly block interface, and
>write the tape some other way, it would be much easier.

I could certainly live with a readonly block interface between
filemarks, especially since the tape has to be rewritten from
a filemark anyway. I could also live with a 2GB file size limit
(again between filemarks) since quite a few other pointers would
break on anything larger anyway (apart from current tape
capacity being smaller than 2GB for DAT).

However I do now understand, from your explanation, that adding
lseek is not as trivial as I thought, and since the filemark
mechanism only occupies 4bytes and does not slow things down I
guess it will do for most applications (including the one I had
in mind - just storing thousands of files offline for retrieval
in batches or on a delay of 12 seconds or so rewind time) so
that explains why normal unix drivers may not include it.

I still think that since it is relatively easy for just a
readonly block interface, even though non-trivial, and since
that is all that could ever be possible for DDS, the unix
driver SHOULD implement lseek. One possible application would
be for a huge hashed database, prepared online, to be dumped
to tape and then be accessible with a 12 second or so delay,
or in batches. But I guess anybody doing that can just go
ahead and write the driver too.

Anyway, ALL my questions are answered now. Thanks to all who
gave advice... it's appreciated.

--
Opinions disclaimed (Authoritative answer from opinion server)
Header reply address wrong. Use cmf851@csc2.anu.edu.au

