[Info-vax] Databases versus RMS

Johnny Billquist bqt at softjar.se
Wed Apr 18 13:42:40 EDT 2012


On 2012-04-18 15:51, Bob Koehler wrote:
> In article<jmmds1$cfl$1 at Iltempo.Update.UU.SE>, Johnny Billquist<bqt at softjar.se>  writes:
>>
>> Hmm. If that is so, then VMS works rather different from RSX. In RSX,
>> disk caching in the OS happens under the QIO layer. Do VMS not have disk
>> caching? Or how does it deal with sharing between different processes,
>> where I/O is hitting the same actual disk blocks?
>>
>> Or was that what you meant by the writeback caching comment?
>
>     Sharing is generally done through RMS layers.  RMS will cache as
>     much or as little as it is told to.  Below RMS, VMS is using
>     write-through cache.  HLL RTLs can also cache, but I don't know
>     if any do using other than RMS features.

Trying to remember/figure out details here. RMS still uses the 
underlying QIO functions to do the actual I/O to/from disk. And 
blocking/deblocking of I/O is done per process by RMS. Are you saying 
that RMS keeps two copies of a disk block then, one per process, and one 
globally shared that is the cache?

To make it clear here - I'm talking about caching that is valid between 
different processes, not the very local "caching" done by RMS for one 
process.

It makes sense to have a global caching as well. For instance, the 
INDEXF.SYS file, as well as 000000.DIR, and some other files are 
referred often enough, and by many different processes, that it pays to 
have them constantly in memory, and copy from that copy instead of doing 
a real I/O when you want to read those files.

The locking semantics only enters at a higher level, so there is no 
problem sharing such a cache on a very low level.

>     I never experienced anything but write-through cache on RSX, but I
>     never did know it as well.

You can enable deferred writes for the disk cache if you want to. 
Totally optional. Without it, you'll just have a write-though cache, if 
you have any disk cache at all.

>     Possibly _the_ exception is the pre-allocated block cache.  VMS
>     will mark blocks used on the drive that have not been used in order
>     to keep a cache of free blocks for upcoming writes.  This is what
>     gets rebuilt when an improperly dismounted disk is mounted without
>     /norebuild, or when a "set volume/rebuild", is done.

Ah. Yes, not having to search through BITMAP.SYS makes sense.

	Johnny

-- 
Johnny Billquist                  || "I'm on a bus
                                   ||  on a psychedelic trip
email: bqt at softjar.se             ||  Reading murder books
pdp is alive!                     ||  tryin' to stay hip" - B. Idol



More information about the Info-vax mailing list