Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

1 + 1 = 3, for large values of 1.


computers / comp.os.vms / Re: Example of random access by record number on an RMS fixed record size, relative organization file?

SubjectAuthor
* Example of random access by record number on an RMS fixed record size, relative T. Kurt Bond
+* Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
|`* Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| +* Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| |`* Re: Example of random access by record number on an RMS fixed recordgah4
| | +* Re: Example of random access by record number on an RMS fixed recordHein RMS van den Heuvel
| | |+- Re: Example of random access by record number on an RMS fixed recordgah4
| | |`* Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| | | `* Re: Example of random access by record number on an RMS fixed recordHein RMS van den Heuvel
| | |  `- Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| | +* Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| | |`* Re: Example of random access by record number on an RMS fixed record size, relatSimon Clubley
| | | +- Re: Example of random access by record number on an RMS fixed recordgah4
| | | `* Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| | |  `* Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| | |   `- Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| | `* Re: Example of random access by record number on an RMS fixed recordbill
| |  `* Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| |   +* Re: Example of random access by record number on an RMS fixed recordHein RMS van den Heuvel
| |   |+- Re: Example of random access by record number on an RMS fixed recordgah4
| |   |`- Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| |   `* Re: Example of random access by record number on an RMS fixed recordbill
| |    +* Re: Example of random access by record number on an RMS fixed recordgah4
| |    |+* Re: Example of random access by record number on an RMS fixed recordDave Froble
| |    ||`* Re: Example of random access by record number on an RMS fixed recordgah4
| |    || `* Re: Example of random access by record number on an RMS fixed recordDavid Jones
| |    ||  `* Re: Example of random access by record number on an RMS fixed recordgah4
| |    ||   `- Re: Example of random access by record number on an RMS fixed recordJohnny Billquist
| |    |`* Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| |    | +- Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| |    | `- Re: Example of random access by record number on an RMS fixed recordgah4
| |    `- Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| +- Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| +* Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| |`* Re: Example of random access by record number on an RMS fixed recordDave Froble
| | +* Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| | |`* Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| | | `* Re: Example of random access by record number on an RMS fixed recordDave Froble
| | |  `* Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| | |   +- Re: Example of random access by record number on an RMS fixed recordgah4
| | |   +* Re: Example of random access by record number on an RMS fixed recordJohnny Billquist
| | |   |`- Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| | |   `* Re: Example of random access by record number on an RMS fixed recordDave Froble
| | |    `- Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| | `* Re: Example of random access by record number on an RMS fixed record size, relatSimon Clubley
| |  +- Re: Example of random access by record number on an RMS fixed recordHein RMS van den Heuvel
| |  `* Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| |   `* Re: Example of random access by record number on an RMS fixed record size, relatSimon Clubley
| |    +* Re: Example of random access by record number on an RMS fixed recordChris Townley
| |    |`- Re: Example of random access by record number on an RMS fixed record size, relatSimon Clubley
| |    `- Re: Example of random access by record number on an RMS fixed recordDave Froble
| +- Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| +- Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
| `- Re: Example of random access by record number on an RMS fixed recordArne Vajhøj
+- Re: Example of random access by record number on an RMS fixed recordDave Froble
+* Re: Example of random access by record number on an RMS fixed record size, relatBob Gezelter
|`- Re: Example of random access by record number on an RMS fixed recordgah4
+- Re: Example of random access by record number on an RMS fixed record size, relatNeil Rieck
+* Re: Example of random access by record number on an RMS fixed record size, relatT. Kurt Bond
|`* Re: Example of random access by record number on an RMS fixed record size, relatDennis Boone
| `- Re: Example of random access by record number on an RMS fixed recordbill
`- Re: Example of random access by record number on an RMS fixed record size, relatBrian Schenkenberger

Pages:123
Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<uefvfi$35m7k$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30050&group=comp.os.vms#30050

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
Date: Wed, 20 Sep 2023 19:33:06 -0400
Organization: A noiseless patient Spider
Lines: 16
Message-ID: <uefvfi$35m7k$1@dont-email.me>
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com>
<73b3ab3b-c673-4d19-a417-ee1a6970617an@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 20 Sep 2023 23:33:06 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="a330c1a32af21f240f52e103772f8035";
logging-data="3332340"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+8auBzNcqXhY/H/u58n8GofThtCs2Rx5Y="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:FpfmozFtExZW0EnGAFr9c1CqtH8=
Content-Language: en-US
In-Reply-To: <73b3ab3b-c673-4d19-a417-ee1a6970617an@googlegroups.com>
 by: Arne Vajhøj - Wed, 20 Sep 2023 23:33 UTC

On 9/20/2023 12:18 AM, Hein RMS van den Heuvel wrote:
> Yes indeed traditionally folks only had half a clue about RMS and vaguely know 512 was a special value and very popular.
>
> With that they proceeded to maximize their storage losses.
>
> The one flag byte overhead relative file records have (plus two for variable) makes the cells larger than 512
> By default FORTRANT/RMS will now use the default 2 block bucketsize
> Thus wasting 511 (509) bytes per 512 byte record.

I could have used recl=508.

:-)

Arne

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<uefvrl$35m7k$2@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30051&group=comp.os.vms#30051

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
Date: Wed, 20 Sep 2023 19:39:33 -0400
Organization: A noiseless patient Spider
Lines: 113
Message-ID: <uefvrl$35m7k$2@dont-email.me>
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com>
<ueekcd$2teef$2@dont-email.me> <ueeo6p$2u101$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 20 Sep 2023 23:39:33 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="a330c1a32af21f240f52e103772f8035";
logging-data="3332340"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18wKa24rp5Bugrv3haDtFPVPx7eeSqkyJg="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:5eW8F72U6E8lIkz4bTklTPOV/3s=
Content-Language: en-US
In-Reply-To: <ueeo6p$2u101$1@dont-email.me>
 by: Arne Vajhøj - Wed, 20 Sep 2023 23:39 UTC

On 9/20/2023 8:22 AM, Simon Clubley wrote:
> On 2023-09-20, Arne Vajhøj <arne@vajhoej.dk> wrote:
>> On 9/19/2023 11:15 PM, gah4 wrote:
>>> On Tuesday, September 19, 2023 at 5:46:29?PM UTC-7, Arne Vajhøj wrote:
>>>> open(unit=1,file='rel.dat',status='new',form='formatted',
>>>> + organization='relative',recl=512,recordtype='variable',
>>>> + access='direct')
>>>
>>> OP asked about fixed record size, and traditionally that is
>>> the way it was done. I haven't followed that detail of later
>>> Fortran standards. They have to, at least, allocate to the
>>> maximum size.
>>
>> True.
>>
>> I added a little more for my example.
>>
>> If I understand the docs correctly then the above
>> allocates 512 bytes (per recl) for each cell, but
>> handles actual lengths 0-512 within that cell.
>
> It allocates 512 bytes for the _data_ within that cell. It then allocates
> a bit more per record to store the length of each record. Look at the
> example Hein posted.
>
> $ set response/mode=good_natured
>
> Even without your statement about never having used relative files,
> at this point I would be actively suspecting that to be the case. :-)
>
> I _have_ used relative files in the past in a number of cases, but I have
> never, ever, used anything other than fixed length records with them.
>
> The idea of variable length records within a relative file is utterly
> alien to me.

Maybe.

I could have used fixed:

$ type rel2wrt.for
program rel2wrt
integer*4 i
character*20 buf
open(unit=1,file='rel.dat',status='new',form='formatted',
+ organization='relative',recl=20,recordtype='fixed',
+ access='direct')
do 100 i = 1, 100
write(buf,'(14HThis is line #,i4.4,2H!!)') i
write(unit=1,rec=i) buf
100 continue
close(unit=1)
end
$ for rel2wrt
$ link rel2wrt
$ run rel2wrt
$ type rel2rdseq.for
program rel2rdseq
integer*4 i
character*20 buf
open(unit=1,file='rel.dat',status='old',form='formatted',
+ organization='relative',recl=20,recordtype='fixed',
+ access='sequential')
100 read(unit=1,fmt='(a)',end=200) buf
write(*,*) '|'//buf//'|'
goto 100
200 close(unit=1)
end
$ for rel2rdseq
$ link rel2rdseq
$ run rel2rdseq
|This is line #0001!!|
|This is line #0002!!|
....
|This is line #0100!!|
$ type rel2rddir.for
program rel2rddir
integer*4 i
character*20 buf
open(unit=1,file='rel.dat',status='old',form='formatted',
+ organization='relative',recl=20,recordtype='fixed',
+ access='direct')
do 200 i = 1, 100
read(unit=1,fmt='(a)',rec=i) buf
write(*,*) '|'//buf//'|'
200 continue
close(unit=1)
end
$ for rel2rddir
$ link rel2rddir
$ run rel2rddir
|This is line #0001!!|
|This is line #0002!!|
....
|This is line #0100!!|

But the point was to illustrate usage of relative files.

The code above is a very poor illustration of relative files.

Because there is nothing relative specific in it. The exact same code
works fine with:
organization='sequential'

Direct access for rfm fixed works fine even for org sequential. No need
for org relative.

Direct access for rfm variable does not work for org sequential only
for org relative.

Arne

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<ueg0lo$35m7k$3@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30052&group=comp.os.vms#30052

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
Date: Wed, 20 Sep 2023 19:53:28 -0400
Organization: A noiseless patient Spider
Lines: 179
Message-ID: <ueg0lo$35m7k$3@dont-email.me>
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com>
<ueekcd$2teef$2@dont-email.me> <ueeo6p$2u101$1@dont-email.me>
<uefvrl$35m7k$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 20 Sep 2023 23:53:28 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="a330c1a32af21f240f52e103772f8035";
logging-data="3332340"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19j7JgRA5FAfuT2fzYo6e+GQZhQjN0YTK4="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:I0br2Azvy2XOX+XsbxVhRFQ06T8=
In-Reply-To: <uefvrl$35m7k$2@dont-email.me>
Content-Language: en-US
 by: Arne Vajhøj - Wed, 20 Sep 2023 23:53 UTC

On 9/20/2023 7:39 PM, Arne Vajhøj wrote:
> On 9/20/2023 8:22 AM, Simon Clubley wrote:
>> On 2023-09-20, Arne Vajhøj <arne@vajhoej.dk> wrote:
>>> On 9/19/2023 11:15 PM, gah4 wrote:
>>>> On Tuesday, September 19, 2023 at 5:46:29?PM UTC-7, Arne Vajhøj wrote:
>>>>> open(unit=1,file='rel.dat',status='new',form='formatted',
>>>>> + organization='relative',recl=512,recordtype='variable',
>>>>> + access='direct')
>>>> OP asked about fixed record size, and traditionally that is
>>>> the way it was done.  I haven't followed that detail of later
>>>> Fortran standards. They have to, at least, allocate to the
>>>> maximum size.
>>>
>>> True.
>>>
>>> I added a little more for my example.
>>>
>>> If I understand the docs correctly then the above
>>> allocates 512 bytes (per recl) for each cell, but
>>> handles actual lengths 0-512 within that cell.
>>
>> It allocates 512 bytes for the _data_ within that cell. It then allocates
>> a bit more per record to store the length of each record. Look at the
>> example Hein posted.
>>
>> $ set response/mode=good_natured
>>
>> Even without your statement about never having used relative files,
>> at this point I would be actively suspecting that to be the case. :-)
>>
>> I _have_ used relative files in the past in a number of cases, but I have
>> never, ever, used anything other than fixed length records with them.
>>
>> The idea of variable length records within a relative file is utterly
>> alien to me.
>
> Maybe.
>
> I could have used fixed:
....
> But the point was to illustrate usage of relative files.
>
> The code above is a very poor illustration of relative files.
>
> Because there is nothing relative specific in it. The exact same code
> works fine with:
>    organization='sequential'
>
> Direct access for rfm fixed works fine even for org sequential. No need
> for org relative.
>
> Direct access for rfm variable does not work for org sequential only
> for org relative.

Alternatively I could have used non-existing records
to illustrate relative.

$ type rel3wrt.for
program rel3wrt
integer*4 i
character*20 buf
open(unit=1,file='rel.dat',status='new',form='formatted',
+ organization='relative',recl=20,recordtype='fixed',
+ access='direct')
do 100 i = 1, 100, 2
write(buf,'(14HThis is line #,i4.4,2H!!)') i
write(unit=1,rec=i) buf
100 continue
close(unit=1)
end
$ for rel3wrt
$ link rel3wrt
$ run rel3wrt
$ type rel3rdseq.for
program rel3rdseq
integer*4 i
character*20 buf
open(unit=1,file='rel.dat',status='old',form='formatted',
+ organization='relative',recl=20,recordtype='fixed',
+ access='sequential')
100 read(unit=1,fmt='(a)',end=200) buf
write(*,*) '|'//buf//'|'
goto 100
200 close(unit=1)
end
$ for rel3rdseq
$ link rel3rdseq
$ run rel3rdseq
|This is line #0001!!|
|This is line #0003!!|
....
|This is line #0099!!|
$ type rel3rddir.for
program rel3rddir
integer*4 i
character*20 buf
open(unit=1,file='rel.dat',status='old',form='formatted',
+ organization='relative',recl=20,recordtype='fixed',
+ access='direct')
do 200 i = 1, 100
read(unit=1,fmt='(a)',rec=i, err=200) buf
write(*,*) '|'//buf//'|'
200 continue
close(unit=1)
end
$ for rel3rddir
$ link rel3rddir
$ run rel3rddir
|This is line #0001!!|
|This is line #0003!!|
....
|This is line #0099!!|

which can be done for org sequential but quite as nice:

$ type seq3wrt.for
program seq3wrt
integer*4 i
character*20 buf
open(unit=1,file='seq.dat',status='new',form='formatted',
+ organization='sequential',recl=20,recordtype='fixed',
+ access='direct')
do 100 i = 1, 100, 2
write(buf,'(14HThis is line #,i4.4,2H!!)') i
write(unit=1,rec=i) buf
100 continue
close(unit=1)
end
$ for seq3wrt
$ link seq3wrt
$ run seq3wrt
$ type seq3rdseq.for
program seq3rdseq
integer*4 i
character*20 buf
open(unit=1,file='seq.dat',status='old',form='formatted',
+ organization='sequential',recl=20,recordtype='fixed',
+ access='sequential')
100 read(unit=1,fmt='(a)',end=200) buf
if(buf(1:1).ne.char(0)) then
write(*,*) '|'//buf//'|'
end if
goto 100
200 close(unit=1)
end
$ for seq3rdseq
$ link seq3rdseq
$ run seq3rdseq
|This is line #0001!!|
|This is line #0003!!|
....
|This is line #0099!!|
$ type seq3rddir.for
program seq3rddir
integer*4 i
character*20 buf
open(unit=1,file='seq.dat',status='old',form='formatted',
+ organization='sequential',recl=20,recordtype='fixed',
+ access='direct')
do 200 i = 1, 100
read(unit=1,fmt='(a)',rec=i,err=200) buf
if(buf(1:1).ne.char(0)) then
write(*,*) '|'//buf//'|'
end if
200 continue
close(unit=1)
end
$ for seq3rddir
$ link seq3rddir
$ run seq3rddir
|This is line #0001!!|
|This is line #0003!!|
....
|This is line #0099!!|

Arne

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<ueg1gf$35m7k$4@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30053&group=comp.os.vms#30053

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
Date: Wed, 20 Sep 2023 20:07:43 -0400
Organization: A noiseless patient Spider
Lines: 45
Message-ID: <ueg1gf$35m7k$4@dont-email.me>
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com>
<kn0kjuFcg04U6@mid.individual.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 21 Sep 2023 00:07:43 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="a330c1a32af21f240f52e103772f8035";
logging-data="3332340"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+v1cE2QZPR+NeNHP+dXGkeVFtd5n5+1kE="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:/Og+MpA387fCMx30t2Gx4pxwtiw=
In-Reply-To: <kn0kjuFcg04U6@mid.individual.net>
Content-Language: en-US
 by: Arne Vajhøj - Thu, 21 Sep 2023 00:07 UTC

On 9/20/2023 12:23 PM, bill wrote:
> Funny thing about this.  I found very little about it in any of
> the (many) COBOL books I have.  I also don't remember ever having
> done it in a production program in my entire 40 year career.
> This kind of task was done much better with ISAM and today it
> would be database.

I don't think relative files has been big anywhere anytime.

But it is supported in the Cobol standard.

I don't see any point of relative files in newer times, but
I suspect that going sufficiently long time back there were
performance reasons to prefer relative over indexed/ISAM

A relative read is:

calculate byte offset = record number * record length
read record length bytes starting at byte offset from file

An indexed/ISAM read is:

read root page
search in root page and find next level index page
read index page
search in index page and find either next level index page or data page
....
read data page
find record in data page

Difference in both number of IO's and CPU usage.

Does it matter on a x86-86? Probably not.

Did it matter on Itanium and Alpha? Probably not.

Did it matter on VAX? Maybe in some cases.

Did it matter on PDP-11? Probably.

Did it matter on PDP-8? If stuff like this was even possible then I am
pretty sure yes.

Arne

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<ueg1ve$35m7k$5@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30054&group=comp.os.vms#30054

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
Date: Wed, 20 Sep 2023 20:15:42 -0400
Organization: A noiseless patient Spider
Lines: 66
Message-ID: <ueg1ve$35m7k$5@dont-email.me>
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com>
<ueekcd$2teef$2@dont-email.me> <ueeo6p$2u101$1@dont-email.me>
<uefvrl$35m7k$2@dont-email.me> <ueg0lo$35m7k$3@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 21 Sep 2023 00:15:42 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="a330c1a32af21f240f52e103772f8035";
logging-data="3332340"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19L0S+/A857QtBQ3jBY9WM+79N2TdJJpAE="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:uQG+/P8DQTfr075ls1CsjxH6adg=
In-Reply-To: <ueg0lo$35m7k$3@dont-email.me>
Content-Language: en-US
 by: Arne Vajhøj - Thu, 21 Sep 2023 00:15 UTC

On 9/20/2023 7:53 PM, Arne Vajhøj wrote:
> On 9/20/2023 7:39 PM, Arne Vajhøj wrote:
>> On 9/20/2023 8:22 AM, Simon Clubley wrote:
>>> On 2023-09-20, Arne Vajhøj <arne@vajhoej.dk> wrote:
>>>> On 9/19/2023 11:15 PM, gah4 wrote:
>>>>> On Tuesday, September 19, 2023 at 5:46:29?PM UTC-7, Arne Vajhøj wrote:
>>>>>> open(unit=1,file='rel.dat',status='new',form='formatted',
>>>>>> + organization='relative',recl=512,recordtype='variable',
>>>>>> + access='direct')
>>>>> OP asked about fixed record size, and traditionally that is
>>>>> the way it was done.  I haven't followed that detail of later
>>>>> Fortran standards. They have to, at least, allocate to the
>>>>> maximum size.
>>>>
>>>> True.
>>>>
>>>> I added a little more for my example.
>>>>
>>>> If I understand the docs correctly then the above
>>>> allocates 512 bytes (per recl) for each cell, but
>>>> handles actual lengths 0-512 within that cell.
>>>
>>> It allocates 512 bytes for the _data_ within that cell. It then
>>> allocates
>>> a bit more per record to store the length of each record. Look at the
>>> example Hein posted.
>>>
>>> $ set response/mode=good_natured
>>>
>>> Even without your statement about never having used relative files,
>>> at this point I would be actively suspecting that to be the case. :-)
>>>
>>> I _have_ used relative files in the past in a number of cases, but I
>>> have
>>> never, ever, used anything other than fixed length records with them.
>>>
>>> The idea of variable length records within a relative file is utterly
>>> alien to me.
>>
>> Maybe.
>>
>> I could have used fixed:
> ...
>> But the point was to illustrate usage of relative files.
>>
>> The code above is a very poor illustration of relative files.
>>
>> Because there is nothing relative specific in it. The exact same code
>> works fine with:
>>     organization='sequential'
>>
>> Direct access for rfm fixed works fine even for org sequential. No need
>> for org relative.
>>
>> Direct access for rfm variable does not work for org sequential only
>> for org relative.
>
> Alternatively I could have used non-existing records
> to illustrate relative.

> which can be done for org sequential but quite as nice:
^not

Arne

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<62f29399-3c99-4d78-a783-0c2aba48b8c5n@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30055&group=comp.os.vms#30055

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:ac8:7f86:0:b0:40f:f2e0:af7c with SMTP id z6-20020ac87f86000000b0040ff2e0af7cmr49211qtj.13.1695263852433;
Wed, 20 Sep 2023 19:37:32 -0700 (PDT)
X-Received: by 2002:a05:6808:3992:b0:3ad:f3e6:6706 with SMTP id
gq18-20020a056808399200b003adf3e66706mr1386718oib.8.1695263852209; Wed, 20
Sep 2023 19:37:32 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!border-2.nntp.ord.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Wed, 20 Sep 2023 19:37:31 -0700 (PDT)
In-Reply-To: <ueg1gf$35m7k$4@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=73.234.171.161; posting-account=U1iMPAoAAAC9r8wm0KaW63EcF8sfjFeH
NNTP-Posting-Host: 73.234.171.161
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com> <kn0kjuFcg04U6@mid.individual.net>
<ueg1gf$35m7k$4@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <62f29399-3c99-4d78-a783-0c2aba48b8c5n@googlegroups.com>
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
From: heinvand...@gmail.com (Hein RMS van den Heuvel)
Injection-Date: Thu, 21 Sep 2023 02:37:32 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 28
 by: Hein RMS van den Heu - Thu, 21 Sep 2023 02:37 UTC

On Wednesday, September 20, 2023 at 8:07:47 PM UTC-4, Arne Vajhøj wrote:
: > A relative read is:
>
> calculate byte offset = record number * record length
> read record length bytes starting at byte offset from file

Noop.
Not for RMS. Not even for fixed length record sequential files.

Sequential files are conceptually divided into fixed length Multi Block Count (MBC) time 512 byte buffers.
For shared file access the first accessor locks in the MBC. Default MBC=16 = 8KB.
RMS will first take an integer round down to MBC to find the first MBC block to read and finds the record in there.
It may need a second read if the records spills over the end, even if it could have just started the read later.

For Relative files RMS divides the file up into buckets (default = big enough to hold 1 at least record.
It first calculates records/bucket (RPB) integer divide of bucketsize*512 and (one (flag byte) plus Maximum Record Size).
Next calculate VBN as 1 (File Prologue) plus integer divide of record number by RPB times RPB.
Read BKS * 512 bytes, and locate the record.
Hein.

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<a31dad00-02f6-4eb6-8e87-707c874c83bcn@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30056&group=comp.os.vms#30056

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a05:6214:1908:b0:64a:68a6:7d9d with SMTP id er8-20020a056214190800b0064a68a67d9dmr50335qvb.4.1695264083940;
Wed, 20 Sep 2023 19:41:23 -0700 (PDT)
X-Received: by 2002:a05:6808:148f:b0:3a7:b15d:b59d with SMTP id
e15-20020a056808148f00b003a7b15db59dmr2014763oiw.11.1695264083735; Wed, 20
Sep 2023 19:41:23 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Wed, 20 Sep 2023 19:41:23 -0700 (PDT)
In-Reply-To: <uefvfi$35m7k$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=73.234.171.161; posting-account=U1iMPAoAAAC9r8wm0KaW63EcF8sfjFeH
NNTP-Posting-Host: 73.234.171.161
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com> <73b3ab3b-c673-4d19-a417-ee1a6970617an@googlegroups.com>
<uefvfi$35m7k$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a31dad00-02f6-4eb6-8e87-707c874c83bcn@googlegroups.com>
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
From: heinvand...@gmail.com (Hein RMS van den Heuvel)
Injection-Date: Thu, 21 Sep 2023 02:41:23 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2088
 by: Hein RMS van den Heu - Thu, 21 Sep 2023 02:41 UTC

On Wednesday, September 20, 2023 at 7:33:10 PM UTC-4, Arne Vajhøj wrote:
> On 9/20/2023 12:18 AM, Hein RMS van den Heuvel wrote:
> > Yes indeed traditionally folks only had half a clue about RMS and vaguely know 512 was a special value and very popular.
> >
> > With that they proceeded to maximize their storage losses.
> >

> I could have used recl=508.

Yes you could, and so could have hundreds of commercial programmers but the point is they didn't!
They all picked 512 and proceeded to add 'filler' bytes to their record definitions 'just in case' just like you did.

:-)

Hein

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<2e14e1a4-e534-4b8f-9a36-de5a0486f227n@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30057&group=comp.os.vms#30057

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a0c:ed4c:0:b0:658:8eed:bdd0 with SMTP id v12-20020a0ced4c000000b006588eedbdd0mr45187qvq.2.1695276566533;
Wed, 20 Sep 2023 23:09:26 -0700 (PDT)
X-Received: by 2002:a05:6808:148e:b0:3ab:84f0:b4a5 with SMTP id
e14-20020a056808148e00b003ab84f0b4a5mr2224888oiw.3.1695276566368; Wed, 20 Sep
2023 23:09:26 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Wed, 20 Sep 2023 23:09:25 -0700 (PDT)
In-Reply-To: <62f29399-3c99-4d78-a783-0c2aba48b8c5n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2601:602:9700:4689:bd0e:72ea:3dde:82d2;
posting-account=gLDX1AkAAAA26M5HM-O3sVMAXdxK9FPA
NNTP-Posting-Host: 2601:602:9700:4689:bd0e:72ea:3dde:82d2
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com> <kn0kjuFcg04U6@mid.individual.net>
<ueg1gf$35m7k$4@dont-email.me> <62f29399-3c99-4d78-a783-0c2aba48b8c5n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <2e14e1a4-e534-4b8f-9a36-de5a0486f227n@googlegroups.com>
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
From: gah...@u.washington.edu (gah4)
Injection-Date: Thu, 21 Sep 2023 06:09:26 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2642
 by: gah4 - Thu, 21 Sep 2023 06:09 UTC

On Wednesday, September 20, 2023 at 7:37:33 PM UTC-7, Hein RMS van den Heuvel wrote:

(snip)

> For Relative files RMS divides the file up into buckets (default = big enough to hold 1 at least record.
> It first calculates records/bucket (RPB) integer divide of bucketsize*512 and (one (flag byte) plus Maximum Record Size).
> Next calculate VBN as 1 (File Prologue) plus integer divide of record number by RPB times RPB.
> Read BKS * 512 bytes, and locate the record.

For comparison OS/360, not all that long before VMS, writes disk tracks with
physical blocks equal to the record lengths. (Sequential files are normally written
with blocked records, but again they are written to the physical block length.)

Disks are accessed by cylinder, track, and block within the track. OS knows how
many blocks are on a track, and calculates the track and record within the track.
That made more sense in 1963 than it did later.

More recent OS work the same way, but the disk drives emulate the count-key-data
system using fixed-block disk drives.

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<kn2qn0Fcg04U7@mid.individual.net>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30059&group=comp.os.vms#30059

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!nntp.comgw.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: bill.gun...@gmail.com (bill)
Newsgroups: comp.os.vms
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
Date: Thu, 21 Sep 2023 08:19:42 -0400
Lines: 55
Message-ID: <kn2qn0Fcg04U7@mid.individual.net>
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com>
<kn0kjuFcg04U6@mid.individual.net> <ueg1gf$35m7k$4@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: individual.net PO1llXi3C/ngY+OlXTWJwAo3G8eEojTVK0mVs82izGTch/vMOf
Cancel-Lock: sha1:XxQn+4HV/vM9HJ/hV9itbepgVjY= sha256:r4O58B87B7WNDjZD2G9LldvifnjEETHBE7X81rcHLkY=
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.15.1
Content-Language: en-US
In-Reply-To: <ueg1gf$35m7k$4@dont-email.me>
 by: bill - Thu, 21 Sep 2023 12:19 UTC

On 9/20/2023 8:07 PM, Arne Vajhøj wrote:
> On 9/20/2023 12:23 PM, bill wrote:
>> Funny thing about this.  I found very little about it in any of
>> the (many) COBOL books I have.  I also don't remember ever having
>> done it in a production program in my entire 40 year career.
>> This kind of task was done much better with ISAM and today it
>> would be database.
>
> I don't think relative files has been big anywhere anytime.
>
> But it is supported in the Cobol standard.
>
> I don't see any point of relative files in newer times, but
> I suspect that going sufficiently long time back there were
> performance reasons to prefer relative over indexed/ISAM

While ISAM may be less efficient relative files can waste a
lot of space. Space is allocated for empty records and back
in the good ole days disk space was premium and very expensive.

>
> A relative read is:
>
> calculate byte offset = record number * record length
> read record length bytes starting at byte offset from file
>
> An indexed/ISAM read is:
>
> read root page
> search in root page and find next level index page
> read index page
> search in index page and find either next level index page or data page
> ...
> read data page
> find record in data page
>
> Difference in both number of IO's and CPU usage.
>
> Does it matter on a x86-86? Probably not.
>
> Did it matter on Itanium and Alpha? Probably not.
>
> Did it matter on VAX? Maybe in some cases.
>
> Did it matter on PDP-11? Probably.
>
> Did it matter on PDP-8? If stuff like this was even possible then I am
> pretty sure yes.
>
> Arne
>

bill

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<7a5f9ade-d803-4061-9c3e-867c661c8342n@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30060&group=comp.os.vms#30060

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a05:620a:482:b0:774:1003:2bbb with SMTP id 2-20020a05620a048200b0077410032bbbmr18209qkr.3.1695316202145;
Thu, 21 Sep 2023 10:10:02 -0700 (PDT)
X-Received: by 2002:a05:6870:98b0:b0:1d1:3ad6:bb99 with SMTP id
eg48-20020a05687098b000b001d13ad6bb99mr2283794oab.2.1695316201816; Thu, 21
Sep 2023 10:10:01 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!border-2.nntp.ord.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Thu, 21 Sep 2023 10:10:01 -0700 (PDT)
In-Reply-To: <kn2qn0Fcg04U7@mid.individual.net>
Injection-Info: google-groups.googlegroups.com; posting-host=2601:602:9700:4689:4179:596f:be65:1c44;
posting-account=gLDX1AkAAAA26M5HM-O3sVMAXdxK9FPA
NNTP-Posting-Host: 2601:602:9700:4689:4179:596f:be65:1c44
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com> <kn0kjuFcg04U6@mid.individual.net>
<ueg1gf$35m7k$4@dont-email.me> <kn2qn0Fcg04U7@mid.individual.net>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <7a5f9ade-d803-4061-9c3e-867c661c8342n@googlegroups.com>
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
From: gah...@u.washington.edu (gah4)
Injection-Date: Thu, 21 Sep 2023 17:10:02 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 33
 by: gah4 - Thu, 21 Sep 2023 17:10 UTC

On Thursday, September 21, 2023 at 5:19:50 AM UTC-7, bill wrote:

(snip)

> While ISAM may be less efficient relative files can waste a
> lot of space. Space is allocated for empty records and back
> in the good ole days disk space was premium and very expensive.

Relative files are convenient if your numbering system is already
not sparse.

Otherwise, it is usually to make it a hash table, and hash the
index before using it to read/write a record.

ISAM is convenient, in that it does some of the work for you,
that you could otherwise do yourself.

As far as I know, ISAM first appeared in OS/360. Among others,
it uses features of the S/360 disk controllers for finding records.
That minimized memory use at the time. For one,
it puts absolute disk addresses in the index, not relative.
The data sets have the U (unmovable) attribute.
There are utility programs that know how to back them
up, and restore them to different disk addresses.

They also use self-modifying channel programs.
Pretty much the equivalent of self-modifying code,
but at the I/O channel level.

There is special code in VM/CMS for processing the self-modifying
channel programs from ISAM. But much of that was later fixed
by VSAM instead, which also has ISAM emulation.

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<uehu5c$3kgaf$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30061&group=comp.os.vms#30061

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: dav...@tsoft-inc.com (Dave Froble)
Newsgroups: comp.os.vms
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
Date: Thu, 21 Sep 2023 13:23:51 -0400
Organization: A noiseless patient Spider
Lines: 24
Message-ID: <uehu5c$3kgaf$1@dont-email.me>
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com>
<kn0kjuFcg04U6@mid.individual.net> <ueg1gf$35m7k$4@dont-email.me>
<kn2qn0Fcg04U7@mid.individual.net>
<7a5f9ade-d803-4061-9c3e-867c661c8342n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 21 Sep 2023 17:22:52 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="8413ca10d7ef376191dd4f8ab609536a";
logging-data="3817807"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18wMQw4edgc2yFBuvgBIfSryHCuPWxbdE4="
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:dyp7gq2XshNUmqKKADilkIvcylg=
In-Reply-To: <7a5f9ade-d803-4061-9c3e-867c661c8342n@googlegroups.com>
 by: Dave Froble - Thu, 21 Sep 2023 17:23 UTC

On 9/21/2023 1:10 PM, gah4 wrote:
> On Thursday, September 21, 2023 at 5:19:50 AM UTC-7, bill wrote:
>
> (snip)
>
>> While ISAM may be less efficient relative files can waste a
>> lot of space. Space is allocated for empty records and back
>> in the good ole days disk space was premium and very expensive.
>
> Relative files are convenient if your numbering system is already
> not sparse.
>
> Otherwise, it is usually to make it a hash table, and hash the
> index before using it to read/write a record.

If the requirement is some type of keyed file, then just use a keyed file type.

--
David Froble Tel: 724-529-0450
Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
DFE Ultralights, Inc.
170 Grimplin Road
Vanderbilt, PA 15486

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<c060e86b-1cfd-4229-b5c3-f1ab8289915an@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30062&group=comp.os.vms#30062

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a05:6214:5650:b0:63f:bfb1:3a38 with SMTP id mh16-20020a056214565000b0063fbfb13a38mr75026qvb.12.1695320443020;
Thu, 21 Sep 2023 11:20:43 -0700 (PDT)
X-Received: by 2002:a05:6870:5aab:b0:1bf:5a7d:3738 with SMTP id
dt43-20020a0568705aab00b001bf5a7d3738mr2353277oab.2.1695320442734; Thu, 21
Sep 2023 11:20:42 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Thu, 21 Sep 2023 11:20:42 -0700 (PDT)
In-Reply-To: <uehu5c$3kgaf$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2601:602:9700:4689:4179:596f:be65:1c44;
posting-account=gLDX1AkAAAA26M5HM-O3sVMAXdxK9FPA
NNTP-Posting-Host: 2601:602:9700:4689:4179:596f:be65:1c44
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com> <kn0kjuFcg04U6@mid.individual.net>
<ueg1gf$35m7k$4@dont-email.me> <kn2qn0Fcg04U7@mid.individual.net>
<7a5f9ade-d803-4061-9c3e-867c661c8342n@googlegroups.com> <uehu5c$3kgaf$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <c060e86b-1cfd-4229-b5c3-f1ab8289915an@googlegroups.com>
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
From: gah...@u.washington.edu (gah4)
Injection-Date: Thu, 21 Sep 2023 18:20:43 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2003
 by: gah4 - Thu, 21 Sep 2023 18:20 UTC

On Thursday, September 21, 2023 at 10:22:57 AM UTC-7, Dave Froble wrote:

(snip)

> > Otherwise, it is usually to make it a hash table, and hash the
> > index before using it to read/write a record.

> If the requirement is some type of keyed file, then just use a keyed file type.

OS/360 has a keyed file type, but I believe it does a linear search.
I suspect it is used for the index of ISAM.

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<ece09c65-a549-4381-b0de-7cfed10111ddn@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30063&group=comp.os.vms#30063

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a05:620a:808a:b0:76e:f294:a706 with SMTP id ef10-20020a05620a808a00b0076ef294a706mr7841qkb.2.1695330157836;
Thu, 21 Sep 2023 14:02:37 -0700 (PDT)
X-Received: by 2002:a05:6870:c7a8:b0:1d1:3ff8:9f83 with SMTP id
dy40-20020a056870c7a800b001d13ff89f83mr2784446oab.1.1695330157595; Thu, 21
Sep 2023 14:02:37 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Thu, 21 Sep 2023 14:02:36 -0700 (PDT)
In-Reply-To: <c060e86b-1cfd-4229-b5c3-f1ab8289915an@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=104.231.150.181; posting-account=CO-_tAoAAACjjs2KLAw3xVKCy6Z_J3VK
NNTP-Posting-Host: 104.231.150.181
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com> <kn0kjuFcg04U6@mid.individual.net>
<ueg1gf$35m7k$4@dont-email.me> <kn2qn0Fcg04U7@mid.individual.net>
<7a5f9ade-d803-4061-9c3e-867c661c8342n@googlegroups.com> <uehu5c$3kgaf$1@dont-email.me>
<c060e86b-1cfd-4229-b5c3-f1ab8289915an@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ece09c65-a549-4381-b0de-7cfed10111ddn@googlegroups.com>
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
From: osuvma...@gmail.com (David Jones)
Injection-Date: Thu, 21 Sep 2023 21:02:37 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2015
 by: David Jones - Thu, 21 Sep 2023 21:02 UTC

On Thursday, September 21, 2023 at 2:20:44 PM UTC-4, gah4 wrote:
>
> > If the requirement is some type of keyed file, then just use a keyed file type.
> OS/360 has a keyed file type, but I believe it does a linear search.
> I suspect it is used for the index of ISAM.

My recollection is that RMS indexed files are more akin to IBM VSAM file structure,
ISAM came earlier.

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<a2d84b19-3730-43ad-88ac-608114d69a8fn@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30064&group=comp.os.vms#30064

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a05:620a:46a9:b0:76f:454:8e6a with SMTP id bq41-20020a05620a46a900b0076f04548e6amr90714qkb.4.1695333973491;
Thu, 21 Sep 2023 15:06:13 -0700 (PDT)
X-Received: by 2002:a9d:77c2:0:b0:6b9:cf90:87a6 with SMTP id
w2-20020a9d77c2000000b006b9cf9087a6mr2167093otl.1.1695333973256; Thu, 21 Sep
2023 15:06:13 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Thu, 21 Sep 2023 15:06:12 -0700 (PDT)
In-Reply-To: <ece09c65-a549-4381-b0de-7cfed10111ddn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2601:602:9700:4689:4179:596f:be65:1c44;
posting-account=gLDX1AkAAAA26M5HM-O3sVMAXdxK9FPA
NNTP-Posting-Host: 2601:602:9700:4689:4179:596f:be65:1c44
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com> <kn0kjuFcg04U6@mid.individual.net>
<ueg1gf$35m7k$4@dont-email.me> <kn2qn0Fcg04U7@mid.individual.net>
<7a5f9ade-d803-4061-9c3e-867c661c8342n@googlegroups.com> <uehu5c$3kgaf$1@dont-email.me>
<c060e86b-1cfd-4229-b5c3-f1ab8289915an@googlegroups.com> <ece09c65-a549-4381-b0de-7cfed10111ddn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a2d84b19-3730-43ad-88ac-608114d69a8fn@googlegroups.com>
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
From: gah...@u.washington.edu (gah4)
Injection-Date: Thu, 21 Sep 2023 22:06:13 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2865
 by: gah4 - Thu, 21 Sep 2023 22:06 UTC

On Thursday, September 21, 2023 at 2:02:39 PM UTC-7, David Jones wrote:
> On Thursday, September 21, 2023 at 2:20:44 PM UTC-4, gah4 wrote:
> > > If the requirement is some type of keyed file, then just use a keyed file type.
> > OS/360 has a keyed file type, but I believe it does a linear search.
> > I suspect it is used for the index of ISAM.

> My recollection is that RMS indexed files are more akin to IBM VSAM file structure,
> ISAM came earlier.

VSAM is supposed to have started with OS/VS about 1973.
That would have been in time for VMS.

I think it was some time after 1973 by the time I first heard about it,
and even then much longer before I knew anything about it.
(Other than sounding fancy and new.)

BISAM and QISAM, the actual IBM names, depends a lot on feature
of S/360 and especially channels. But also memory sizes increased
much from 1963 to 1973. OS/360 could run on machines down to
about 64K bytes, though for them DOS/360 might be more usual.

Otherwise, outside IBM, ISAM seems to be a generic term for something
that might or might not be so similar.

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<ueiet1$3na6v$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30065&group=comp.os.vms#30065

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
Date: Thu, 21 Sep 2023 18:08:33 -0400
Organization: A noiseless patient Spider
Lines: 27
Message-ID: <ueiet1$3na6v$1@dont-email.me>
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com>
<kn0kjuFcg04U6@mid.individual.net> <ueg1gf$35m7k$4@dont-email.me>
<kn2qn0Fcg04U7@mid.individual.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 21 Sep 2023 22:08:33 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="3ee00c18b9b3d7ac8be29eb687c6df0b";
logging-data="3909855"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19g+VAOH4/29mFKa68U8Iix3uuuNl1EVGs="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:3j6T8PE5X2K4vxS4RaIg8tKAyRk=
Content-Language: en-US
In-Reply-To: <kn2qn0Fcg04U7@mid.individual.net>
 by: Arne Vajhøj - Thu, 21 Sep 2023 22:08 UTC

On 9/21/2023 8:19 AM, bill wrote:
> On 9/20/2023 8:07 PM, Arne Vajhøj wrote:
>> On 9/20/2023 12:23 PM, bill wrote:
>>> Funny thing about this.  I found very little about it in any of
>>> the (many) COBOL books I have.  I also don't remember ever having
>>> done it in a production program in my entire 40 year career.
>>> This kind of task was done much better with ISAM and today it
>>> would be database.
>>
>> I don't think relative files has been big anywhere anytime.
>>
>> But it is supported in the Cobol standard.
>>
>> I don't see any point of relative files in newer times, but
>> I suspect that going sufficiently long time back there were
>> performance reasons to prefer relative over indexed/ISAM
>
> While ISAM may be less efficient relative files can waste a
> lot of space.  Space is allocated for empty records and back
> in the good ole days disk space was premium and very expensive.

True. Relative files only makes sense if keys does not have
too much holes. As usual there are tradeoffs.

Arne

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<ueif59$3na6v$2@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30066&group=comp.os.vms#30066

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
Date: Thu, 21 Sep 2023 18:12:57 -0400
Organization: A noiseless patient Spider
Lines: 17
Message-ID: <ueif59$3na6v$2@dont-email.me>
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com>
<kn0kjuFcg04U6@mid.individual.net> <ueg1gf$35m7k$4@dont-email.me>
<kn2qn0Fcg04U7@mid.individual.net>
<7a5f9ade-d803-4061-9c3e-867c661c8342n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 21 Sep 2023 22:12:57 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="3ee00c18b9b3d7ac8be29eb687c6df0b";
logging-data="3909855"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19qVJ40vGRcj6me0Lui4dEJM4ZNIHtYSp4="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:klA6K9yX8w8ZfVGzm92VofwZht0=
In-Reply-To: <7a5f9ade-d803-4061-9c3e-867c661c8342n@googlegroups.com>
Content-Language: en-US
 by: Arne Vajhøj - Thu, 21 Sep 2023 22:12 UTC

On 9/21/2023 1:10 PM, gah4 wrote:
> On Thursday, September 21, 2023 at 5:19:50 AM UTC-7, bill wrote:
>> While ISAM may be less efficient relative files can waste a
>> lot of space. Space is allocated for empty records and back
>> in the good ole days disk space was premium and very expensive.
>
> Relative files are convenient if your numbering system is already
> not sparse.
>
> Otherwise, it is usually to make it a hash table, and hash the
> index before using it to read/write a record.

A hashing producing non sparse results will typical also
produce a lot of collisions requiring collision handling.

Arne

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<ueihlo$5jc$1@news.misty.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30067&group=comp.os.vms#30067

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!.POSTED.80-218-16-84.dclient.hispeed.ch!not-for-mail
From: bqt...@softjar.se (Johnny Billquist)
Newsgroups: comp.os.vms
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
Date: Fri, 22 Sep 2023 00:55:52 +0200
Organization: MGT Consulting
Message-ID: <ueihlo$5jc$1@news.misty.com>
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com>
<kn0kjuFcg04U6@mid.individual.net> <ueg1gf$35m7k$4@dont-email.me>
<kn2qn0Fcg04U7@mid.individual.net>
<7a5f9ade-d803-4061-9c3e-867c661c8342n@googlegroups.com>
<uehu5c$3kgaf$1@dont-email.me>
<c060e86b-1cfd-4229-b5c3-f1ab8289915an@googlegroups.com>
<ece09c65-a549-4381-b0de-7cfed10111ddn@googlegroups.com>
<a2d84b19-3730-43ad-88ac-608114d69a8fn@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 21 Sep 2023 22:55:52 -0000 (UTC)
Injection-Info: news.misty.com; posting-host="80-218-16-84.dclient.hispeed.ch:80.218.16.84";
logging-data="5740"; mail-complaints-to="abuse@misty.com"
User-Agent: Mozilla Thunderbird
Content-Language: en-GB
In-Reply-To: <a2d84b19-3730-43ad-88ac-608114d69a8fn@googlegroups.com>
 by: Johnny Billquist - Thu, 21 Sep 2023 22:55 UTC

On 2023-09-22 00:06, gah4 wrote:
> On Thursday, September 21, 2023 at 2:02:39 PM UTC-7, David Jones wrote:
>> On Thursday, September 21, 2023 at 2:20:44 PM UTC-4, gah4 wrote:
>
>>>> If the requirement is some type of keyed file, then just use a keyed file type.
>>> OS/360 has a keyed file type, but I believe it does a linear search.
>>> I suspect it is used for the index of ISAM.
>
>> My recollection is that RMS indexed files are more akin to IBM VSAM file structure,
>> ISAM came earlier.
>
> VSAM is supposed to have started with OS/VS about 1973.
> That would have been in time for VMS.

Well, RMS didn't start with VMS. But I think RMS was at, or after 1973
anyway...

Johnny

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<ueijld$3o6is$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30068&group=comp.os.vms#30068

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
Date: Thu, 21 Sep 2023 19:29:49 -0400
Organization: A noiseless patient Spider
Lines: 25
Message-ID: <ueijld$3o6is$1@dont-email.me>
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com>
<kn0kjuFcg04U6@mid.individual.net> <ueg1gf$35m7k$4@dont-email.me>
<kn2qn0Fcg04U7@mid.individual.net>
<7a5f9ade-d803-4061-9c3e-867c661c8342n@googlegroups.com>
<ueif59$3na6v$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 21 Sep 2023 23:29:49 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="3ee00c18b9b3d7ac8be29eb687c6df0b";
logging-data="3938908"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+q73zn1Oqo5soGFwf6la2lieJAjnYaaZI="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:VhritsXdnRDodadPo1YwGIrmsZo=
In-Reply-To: <ueif59$3na6v$2@dont-email.me>
Content-Language: en-US
 by: Arne Vajhøj - Thu, 21 Sep 2023 23:29 UTC

On 9/21/2023 6:12 PM, Arne Vajhøj wrote:
> On 9/21/2023 1:10 PM, gah4 wrote:
>> On Thursday, September 21, 2023 at 5:19:50 AM UTC-7, bill wrote:
>>> While ISAM may be less efficient relative files can waste a
>>> lot of space. Space is allocated for empty records and back
>>> in the good ole days disk space was premium and very expensive.
>>
>> Relative files are convenient if your numbering system is already
>> not sparse.
>>
>> Otherwise, it is usually to make it a hash table, and hash the
>> index before using it to read/write a record.
>
> A hashing producing non sparse results will typical also
> produce a lot of collisions requiring collision handling.

That was not accurate described.

Any hashing requires collision handling, but hashing
producing lots of collisions requires clever collision
handling that does not kill performance.

Arne

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<b8ff8d8e-8737-4ca9-b56d-a76ac4bf30c8n@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30069&group=comp.os.vms#30069

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:ae9:e314:0:b0:768:421b:a142 with SMTP id v20-20020ae9e314000000b00768421ba142mr11660qkf.4.1695339363263;
Thu, 21 Sep 2023 16:36:03 -0700 (PDT)
X-Received: by 2002:a05:6808:2015:b0:3a3:8c81:a86f with SMTP id
q21-20020a056808201500b003a38c81a86fmr3646524oiw.7.1695339362922; Thu, 21 Sep
2023 16:36:02 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!1.us.feeder.erje.net!3.us.feeder.erje.net!feeder.erje.net!border-1.nntp.ord.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Thu, 21 Sep 2023 16:36:02 -0700 (PDT)
In-Reply-To: <ueif59$3na6v$2@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2601:602:9700:4689:4179:596f:be65:1c44;
posting-account=gLDX1AkAAAA26M5HM-O3sVMAXdxK9FPA
NNTP-Posting-Host: 2601:602:9700:4689:4179:596f:be65:1c44
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com> <kn0kjuFcg04U6@mid.individual.net>
<ueg1gf$35m7k$4@dont-email.me> <kn2qn0Fcg04U7@mid.individual.net>
<7a5f9ade-d803-4061-9c3e-867c661c8342n@googlegroups.com> <ueif59$3na6v$2@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b8ff8d8e-8737-4ca9-b56d-a76ac4bf30c8n@googlegroups.com>
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
From: gah...@u.washington.edu (gah4)
Injection-Date: Thu, 21 Sep 2023 23:36:03 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 33
 by: gah4 - Thu, 21 Sep 2023 23:36 UTC

On Thursday, September 21, 2023 at 3:13:00 PM UTC-7, Arne Vajhøj wrote:
> On 9/21/2023 1:10 PM, gah4 wrote:
> > On Thursday, September 21, 2023 at 5:19:50 AM UTC-7, bill wrote:
> >> While ISAM may be less efficient relative files can waste a
> >> lot of space. Space is allocated for empty records and back
> >> in the good ole days disk space was premium and very expensive.

> > Relative files are convenient if your numbering system is already
> > not sparse.

> > Otherwise, it is usually to make it a hash table, and hash the
> > index before using it to read/write a record.

> A hashing producing non sparse results will typical also
> produce a lot of collisions requiring collision handling.

Well, relative lets you figure it out yourself.

Especially the amount of sparseness you can live with, in exchange
for faster access. With others, the system figures it out for you.

I believe for IBM ISAM, you have to give the size when you first
create it. (Actually, that is the usual way files work in OS/360.)

There is a prime area and overflow area. It seems that it keeps some
space in the prime area for new records, but if they are not uniformly
enough spaced, then they go into the overflow area. So, not
so different from a hash table.

OS/360 disks are addressed by cylinder, track, and record within the track.
It tries to keep nearby records on the same track, or at least same cylinder.

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<ueikgg$3oatq$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30070&group=comp.os.vms#30070

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
Date: Thu, 21 Sep 2023 19:44:14 -0400
Organization: A noiseless patient Spider
Lines: 40
Message-ID: <ueikgg$3oatq$1@dont-email.me>
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com>
<73b3ab3b-c673-4d19-a417-ee1a6970617an@googlegroups.com>
<uefvfi$35m7k$1@dont-email.me>
<a31dad00-02f6-4eb6-8e87-707c874c83bcn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 21 Sep 2023 23:44:16 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="3ee00c18b9b3d7ac8be29eb687c6df0b";
logging-data="3943354"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1978oNOqeX5bUQlyAkEteHTNHH3UGvp0T4="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:q7PvxdzaBKeemPZ56AQQq0tysfw=
In-Reply-To: <a31dad00-02f6-4eb6-8e87-707c874c83bcn@googlegroups.com>
Content-Language: en-US
 by: Arne Vajhøj - Thu, 21 Sep 2023 23:44 UTC

On 9/20/2023 10:41 PM, Hein RMS van den Heuvel wrote:
> On Wednesday, September 20, 2023 at 7:33:10 PM UTC-4, Arne Vajhøj wrote:
>> On 9/20/2023 12:18 AM, Hein RMS van den Heuvel wrote:
>>> Yes indeed traditionally folks only had half a clue about RMS and vaguely know 512 was a special value and very popular.
>>>
>>> With that they proceeded to maximize their storage losses.
>
>> I could have used recl=508.
>
> Yes you could, and so could have hundreds of commercial programmers but the point is they didn't!
> They all picked 512 and proceeded to add 'filler' bytes to their record definitions 'just in case' just like you did.
>
> :-)

There are a few magic numbers 255, 512, 8192, 32767 etc. that probably
are more likely to show up than others.

If space efficiency is not important, then it does not matter.

If space efficiency is important and there is a problem, then
the problem should be investigated - and figuring it out should
not be that difficult.

And as long as they do not call VMS engineering and complain
over the "in-efficiency" then all should be fine.

But for some reason I get the impression that some people
did call VMS engineering and complained over it ...

:-)

Arne

PS: Maybe the manual should make a recommendation of record
size of multipla of 512 minus 4 (which if I understand
your description correct is what minimize unusable space).

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<ueimd2$3ojf2$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30071&group=comp.os.vms#30071

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
Date: Thu, 21 Sep 2023 20:16:33 -0400
Organization: A noiseless patient Spider
Lines: 32
Message-ID: <ueimd2$3ojf2$1@dont-email.me>
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfd1$2jhca$2@dont-email.me>
<1a91f2d6-faa6-495a-8d60-8ab0fe1e725en@googlegroups.com>
<kn0kjuFcg04U6@mid.individual.net> <ueg1gf$35m7k$4@dont-email.me>
<62f29399-3c99-4d78-a783-0c2aba48b8c5n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 22 Sep 2023 00:16:34 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="3ee00c18b9b3d7ac8be29eb687c6df0b";
logging-data="3952098"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/w1p8qQGWLSKVMjUYlezoLkJTLcGDwpCM="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:CJVQ6BDiSl18h8KfE6H6Fw1mFpI=
In-Reply-To: <62f29399-3c99-4d78-a783-0c2aba48b8c5n@googlegroups.com>
Content-Language: en-US
 by: Arne Vajhøj - Fri, 22 Sep 2023 00:16 UTC

On 9/20/2023 10:37 PM, Hein RMS van den Heuvel wrote:
> On Wednesday, September 20, 2023 at 8:07:47 PM UTC-4, Arne Vajhøj wrote:
>> A relative read is:
>>
>> calculate byte offset = record number * record length
>> read record length bytes starting at byte offset from file
>
> Noop.
> Not for RMS. Not even for fixed length record sequential files.
>
> Sequential files are conceptually divided into fixed length Multi Block Count (MBC) time 512 byte buffers.
> For shared file access the first accessor locks in the MBC. Default MBC=16 = 8KB.
> RMS will first take an integer round down to MBC to find the first MBC block to read and finds the record in there.
> It may need a second read if the records spills over the end, even if it could have just started the read later.
>
> For Relative files RMS divides the file up into buckets (default = big enough to hold 1 at least record.
> It first calculates records/bucket (RPB) integer divide of bucketsize*512 and (one (flag byte) plus Maximum Record Size).
> Next calculate VBN as 1 (File Prologue) plus integer divide of record number by RPB times RPB.
> Read BKS * 512 bytes, and locate the record.

My mistake.

VMS read blocks not bytes. And RMS use buffers.

Let me rephrase:

calculate what "chunk" on disk has the data
read that "chunk" into memory and extract data from there

Arne

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<uein9g$3op2f$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30072&group=comp.os.vms#30072

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
Date: Thu, 21 Sep 2023 20:31:43 -0400
Organization: A noiseless patient Spider
Lines: 125
Message-ID: <uein9g$3op2f$1@dont-email.me>
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 22 Sep 2023 00:31:44 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="3ee00c18b9b3d7ac8be29eb687c6df0b";
logging-data="3957839"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18QHBX6m5s2RRgirg+MFNpAHbL1ArW7UsE="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:Q0MFPHoc3oCjezQ6mRUzts0SqTA=
In-Reply-To: <uedf9t$2jhca$1@dont-email.me>
Content-Language: en-US
 by: Arne Vajhøj - Fri, 22 Sep 2023 00:31 UTC

On 9/19/2023 8:44 PM, Arne Vajhøj wrote:
> On 9/16/2023 4:16 PM, Arne Vajhøj wrote:
>> I don't think I have ever used ORG=REL.
>
> But then I could start now!

Cobol:

$ type relwrt.cob
identification division.
program-id.relwrt.
* environment division.
input-output section.
file-control.
select optional f assign to "rel.dat" organization is relative access
mode is dynamic relative key is recno.
* data division.
file section.
fd f.
01 myrec.
03 buf pic x(512).
working-storage section.
01 recno pic 9(9) comp.
01 i pic 9(9) comp.
01 i2 pic 9(9) display.
* procedure division.
main-paragraph.
open i-o f
perform varying i from 1 by 1 until i > 100
move i to recno
move i to i2
string "This is line #" delimited by size i2 delimited by size
"!" delimited by size into buf
write myrec
invalid key continue
not invalid key continue
end-write
end-perform
close f
stop run.
$ cob relwrt
$ link relwrt
$ run relwrt
$ type relrdseq.cob
identification division.
program-id.relrdseq.
* environment division.
input-output section.
file-control.
select f assign to "rel.dat" organization is relative access mode is
dynamic relative key is recno.
* data division.
file section.
fd f.
01 myrec.
03 buf pic x(512).
working-storage section.
01 recno pic 9(9) comp.
01 eof pic x(1) value 'N'.
* procedure division.
main-paragraph.
open i-o f
perform until eof = 'Y'
read f next
at end move 'Y' to eof
not at end display "|" buf "|"
end-read
end-perform
close f
stop run.
$ cob relrdseq
$ link relrdseq
$ run relrdseq
|This is line #000000001!|
|This is line #000000002!|
....
|This is line #000000100!|
$ type relrddir.cob
identification division.
program-id.relrddir.
* environment division.
input-output section.
file-control.
select f assign to "rel.dat" organization is relative access mode is
dynamic relative key is recno.
* data division.
file section.
fd f.
01 myrec.
03 buf pic x(512).
working-storage section.
01 recno pic 9(9) comp.
01 i pic 9(9) comp.
* procedure division.
main-paragraph.
open i-o f
perform varying i from 1 by 1 until i > 100
move i to recno
read f
invalid key continue
not invalid key display "|" buf "|"
end-read
end-perform
close f
stop run.
$ cob relrddir
$ link relrddir
$ run relrddir
|This is line #000000001!|
|This is line #000000002!|
....
|This is line #000000100!|

Arne

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<ueincf$3op2f$2@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30073&group=comp.os.vms#30073

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
Date: Thu, 21 Sep 2023 20:33:19 -0400
Organization: A noiseless patient Spider
Lines: 77
Message-ID: <ueincf$3op2f$2@dont-email.me>
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 22 Sep 2023 00:33:19 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="3ee00c18b9b3d7ac8be29eb687c6df0b";
logging-data="3957839"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/QXUF6ikCiw96HroLFNvdgjPcTDSXtwV0="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:5KeVXgAlorglDAkasROfJCVVHhQ=
Content-Language: en-US
In-Reply-To: <uedf9t$2jhca$1@dont-email.me>
 by: Arne Vajhøj - Fri, 22 Sep 2023 00:33 UTC

On 9/19/2023 8:44 PM, Arne Vajhøj wrote:
> On 9/16/2023 4:16 PM, Arne Vajhøj wrote:
>> I don't think I have ever used ORG=REL.
>
> But then I could start now!

Basic (I know some Basic ode has already been posted):

$ type relwrt.bas
program relwrt

declare integer i
map (myrec) string buf = 512

open "rel.dat" for output as file #1, organization relative variable,
recordsize 512, map myrec
for i = 1 to 100
buf = format$(i, "This is line _#####_!")
put #1, record i
next i
close #1

end program
$ bas relwrt
$ link relwrt
$ run relwrt
$ type relrdseq.bas
program relrdseq

map (myrec) string buf = 512

open "rel.dat" for input as file #1, organization relative variable,
recordsize 512, map myrec
handler eof_handler
end handler
when error use eof_handler
while 1 = 1
get #1
print "|" + trm$(buf) + "|"
next
end when
close #1

end program
$ bas relrdseq
$ link relrdseq
$ run relrdseq
|This is line # 1!|
|This is line # 2!|
....
|This is line # 100!|
$ type relrddir.bas
program relrddir

declare integer i
map (myrec) string buf = 512

open "rel.dat" for input as file #1, organization relative variable,
recordsize 512, map myrec
for i = 1 to 100
get #1, record i
print "|" + trm$(buf) + "|"
next i
close #1

end program
$ bas relrddir
$ link relrddir
$ run relrddir
|This is line # 1!|
|This is line # 2!|
....
|This is line # 100!|

Arne

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<ueinh1$3op2f$3@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30074&group=comp.os.vms#30074

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
Date: Thu, 21 Sep 2023 20:35:45 -0400
Organization: A noiseless patient Spider
Lines: 149
Message-ID: <ueinh1$3op2f$3@dont-email.me>
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 22 Sep 2023 00:35:45 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="3ee00c18b9b3d7ac8be29eb687c6df0b";
logging-data="3957839"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18SKmOYgo8koCo9s/ja49gKQ5rrowAf+ew="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:iPJ+pGdkYtuIA7tIfvmvu6khIXU=
In-Reply-To: <uedf9t$2jhca$1@dont-email.me>
Content-Language: en-US
 by: Arne Vajhøj - Fri, 22 Sep 2023 00:35 UTC

On 9/19/2023 8:44 PM, Arne Vajhøj wrote:
> On 9/16/2023 4:16 PM, Arne Vajhøj wrote:
>> I don't think I have ever used ORG=REL.
>
> But then I could start now!

Macro-32 (I know some Macro-32 code has already been posted):

$ type relwrt.mar
.title relwrt
$DSCDEF
$FABDEF
$RABDEF
$RMSDEF
.psect $PDATA quad,pic,con,lcl,shr,noexe,nowrt
fnm: .ascii "rel.dat"
endfnm:
dir: .ascid "This is line #!4ZL!!"
.psect $LOCAL quad,pic,con,lcl,noshr,noexe,wrt
myfab: $FAB
fna=fnm,fns=endfnm-fnm,org=rel,rfm=var,fop=cif,mrs=512,fac=put
myrab: $RAB fab=myfab,rac=key
key: .blkl 1
buf: .ascid "This is line #nnnn!"
endbuf:
.psect $CODE quad,pic,con,lcl,shr,exe,nowrt
.entry relwrt,^m<r2>
$create fab=myfab
$connect rab=myrab
movl #1,r2
100$: $FAO_S ctrstr=dir,outlen=buf+dsc$w_length,outbuf=buf,p1=r2
movl r2,key
moval key,myrab+rab$l_kbf
movb #4,myrab+rab$b_ksz
movl buf+dsc$a_pointer,myrab+rab$l_rbf
movw buf+dsc$w_length,myrab+rab$w_rsz
$put rab=myrab
incl r2
cmpl r2,#100
bleq 100$
$disconnect rab=myrab
$close fab=myfab
ret
.end relwrt
$ mac relwrt
$ link relwrt
$ run relwrt
$ type relrdseq.mar
.title relrdseq
$DSCDEF
$FABDEF
$RABDEF
$RMSDEF
.psect $PDATA quad,pic,con,lcl,shr,noexe,nowrt
fnm: .ascii "rel.dat"
endfnm:
.psect $LOCAL quad,pic,con,lcl,noshr,noexe,wrt
myfab: $FAB fna=fnm,fns=endfnm-fnm,org=rel,rfm=var,mrs=512,fac=get
myrab: $RAB fab=myfab,rac=seq
buf: .ascid " "
endbuf:
.psect $CODE quad,pic,con,lcl,shr,exe,nowrt
.entry relrdseq,^m<r3,r4>
$open fab=myfab
$connect rab=myrab
100$: movl buf+dsc$a_pointer,myrab+rab$l_ubf
movw buf+dsc$w_length,myrab+rab$w_usz
incl myrab+rab$l_ubf
decw myrab+rab$w_usz
$get rab=myrab
cmpl r0,#RMS$_NORMAL
bneq 200$
movl buf+dsc$a_pointer,r3
movb #124,(r3)
addw2 myrab+rab$w_rsz,r3
movb #124,(r3)
movw buf+dsc$w_length,r4
addw3 #2,myrab+rab$w_rsz,buf+dsc$w_length
pushab buf
calls #1,G^LIB$PUT_OUTPUT
movw r4,buf+dsc$w_length
brb 100$
200$: $disconnect rab=myrab
$close fab=myfab
ret
.end relrdseq
$ mac relrdseq
$ link relrdseq
$ run relrdseq
|This is line #0001|
|This is line #0002|
....
|This is line #0100|
$ type relrddir.mar
.title relrddir
$DSCDEF
$FABDEF
$RABDEF
$RMSDEF
.psect $PDATA quad,pic,con,lcl,shr,noexe,nowrt
fnm: .ascii "rel.dat"
endfnm:
.psect $LOCAL quad,pic,con,lcl,noshr,noexe,wrt
myfab: $FAB fna=fnm,fns=endfnm-fnm,org=rel,rfm=var,mrs=512,fac=get
myrab: $RAB fab=myfab,rac=key
key: .blkl 1
buf: .ascid " "
endbuf:
.psect $CODE quad,pic,con,lcl,shr,exe,nowrt
.entry relrddir,^m<r2,r3,r4>
$open fab=myfab
$connect rab=myrab
movl #1,r2
100$: movl r2,key
moval key,myrab+rab$l_kbf
movb #4,myrab+rab$b_ksz
movl buf+dsc$a_pointer,myrab+rab$l_ubf
movw buf+dsc$w_length,myrab+rab$w_usz
incl myrab+rab$l_ubf
decw myrab+rab$w_usz
$get rab=myrab
movl buf+dsc$a_pointer,r3
movb #124,(r3)
addw2 myrab+rab$w_rsz,r3
movb #124,(r3)
movw buf+dsc$w_length,r4
addw3 #2,myrab+rab$w_rsz,buf+dsc$w_length
pushab buf
calls #1,G^LIB$PUT_OUTPUT
movw r4,buf+dsc$w_length
incl r2
cmpl r2,#100
bleq 100$
$disconnect rab=myrab
$close fab=myfab
ret
.end relrddir
$ mac relrddir
$ link relrddir
$ run relrddir
|This is line #0001|
|This is line #0002|
....
|This is line #0100|

Arne

Re: Example of random access by record number on an RMS fixed record size, relative organization file?

<ueinnv$3op2f$4@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=30075&group=comp.os.vms#30075

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Example of random access by record number on an RMS fixed record
size, relative organization file?
Date: Thu, 21 Sep 2023 20:39:27 -0400
Organization: A noiseless patient Spider
Lines: 38
Message-ID: <ueinnv$3op2f$4@dont-email.me>
References: <m25y49uca2.fsf@gmail.com> <ue52ev$3vimm$1@dont-email.me>
<uedf9t$2jhca$1@dont-email.me> <uedfkq$2jhca$4@dont-email.me>
<uedqqs$2p2ng$1@dont-email.me> <ueek9a$2teef$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 22 Sep 2023 00:39:27 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="3ee00c18b9b3d7ac8be29eb687c6df0b";
logging-data="3957839"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+SfjI0tPIS5yh0PmkmLjarRNaQr47OkJw="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:wbsu1o8nfE4Hwyxd/9kPKZ0IJP8=
Content-Language: en-US
In-Reply-To: <ueek9a$2teef$1@dont-email.me>
 by: Arne Vajhøj - Fri, 22 Sep 2023 00:39 UTC

On 9/20/2023 7:15 AM, Arne Vajhøj wrote:
> On 9/20/2023 12:02 AM, Dave Froble wrote:
>> On 9/19/2023 8:50 PM, Arne Vajhøj wrote:
>>> On 9/19/2023 8:44 PM, Arne Vajhøj wrote:
>>>> On 9/16/2023 4:16 PM, Arne Vajhøj wrote:
>>>>> I don't think I have ever used ORG=REL.
>>>>
>>>> But then I could start now!
>>>
>>> C / RMS:
>>
>> Is it just me, or, was my Basic example shorter and easier to read
>> than your Cobol, Fortran, and C examples?
>
> The Basic code was a bit shorter than the Fortran and Pascal code.
> No so surprising VMS Basic is pretty good in expressing logic
> in few lines.
>
> The Basic code was a lot shorter than the C code, because
> that was using RMS calls and not language specific statement -
> working with RMS Calls and FAB & RAB blocks always require
> way more code than language specific statements.

The stats for my code:

Fortran: 13 + 11 + 12 = 36
Basic: 13 + 16 + 13 = 42
Pascal: 23 + 22 + 22 = 67
Cobol: 32 + 28 + 29 = 89
Macro-32: 34 + 38 + 43 = 115
C: 57 + 55 + 57 = 169

Obviously the result depends a little on coding style - and
mine is just mine.

Arne


computers / comp.os.vms / Re: Example of random access by record number on an RMS fixed record size, relative organization file?

Pages:123
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor