[Info-vax] RMS internals?
Howard S Shubs
howard at shubs.net
Tue Aug 11 11:09:49 EDT 2009
In article
<1e27ffb3-e228-450c-aead-22d23950f110 at d23g2000vbm.googlegroups.com>,
"Hein, Nashua NH" <heinvandenheuvel at gmail.com> wrote:
> On Aug 10, 10:11 am, Howard S Shubs <how... at shubs.net> wrote:
> > In article <sNgXXOeOf... at eisner.encompasserve.org>,
> > koeh... at eisner.nospam.encompasserve.org (Bob Koehler) wrote:
> :
> > > Of course, the quick fix in this case is "set file/attributes", or
> > > maybe just changing the realvent FAB or RAB fields after doing an
> > > $OPEN. But then you have to know what was done wrong by the user.
> :
> > You're working on an incorrect assumption. I suggest you read the thread.
>
> Not so quick Howard. Bob's suggestion has merit.
I was keying on the "was done wrong by the user", which he seems to have
understood from his reply, thankfully.
> Yeah you can readily read through the file with $READ (or $QIO).
> But are you going to add multi-buffering, read-ahead and such?
> If you change the file to 'undefined', or fixed-512 or such, then you
> can use RMS $GET and have RMS do the multi buffering ( RAB$V_RAH ) and
> AST /WAIT support and such.
I'm not sure what you're getting at. I'm just looking at a simple
situation of "read it, give the data to the caller". I'm using $READ
and $OPEN (and $CLOSE) so I don't have to open the file by hand, which
would require me to play with ODS-2 myself, I expect. Disk $QIOs would
be new to me, as well. Might be interesting, but I prefer to do
something more practical (read: maintainable) for my client with this
situation.
> Using SYS$MODIFY you can do that on the fly, after the open.
> You could even start out with regular gets, in case it is a regular
> file, and switch to undefined and your private cut & paste segments
> algorithms if and when you determine that is needed ($GET error).
I'm not seeing $MODIFY in either the System Services Reference or the
RMS reference. What is it, please?
> Admittedly the RMS record-io buffers will be limited to 127 blocks,
> so you can do bigger=better with SYS$READ and a RAB64 or QIO
I'm reading up to 512 blocks at a time, or 3*recordsize rounded up to
the next block size, whichever is bigger. Since the record involved
isn't THAT big, 512 blocks at a time is what's actually happening. A
256KB read is fairly modest, I figure.
--
Don't bother with piddly crap like "gun control".
Life is 100% fatal. Ban it.
More information about the Info-vax
mailing list