Believe it.  

Even before emulated DASD,  MVS QSAM would read multiple blocks with a
single channel program to eliminate rotational delays on native DASD and
do anticipatory reads for the next set of buffers even while you were
still processing records in blocks from the previous read, as long as
you specified enough buffers.  You could prove this with native
3380/3390 by measuring real execution time and increasing the number of
buffers.  Once physical and virtual memory space were not a limiting
factor, the recommendation was to specify enough buffers to at least do
full-track reads as a minimum for all sequential files.  Not sure what
the upper bound was -- probably the max number of blocks per physical
read was 1 cylinder, but could have been less.  The real time effects
were incredibly dramatic if you found an application with smaller block
size and an inadequate buffer specification and fixed the JCL.

Pretty sure with emulated DASD that QSAM is smart enough to communicate
to the DASD subsystem that it is doing pure sequential access and needs
to pre-stage data into cache in the DASD subsystem.   Since BSAM doesn't
have to be purely sequential, it may not be as good at communicating
future intent to the DASD Subsystem.   Obviously with emulated DASD, the
z/OS concepts of device track and cylinder boundaries don't really
apply, but the DASD subsystem can see the sequential access intent and
translate that into whatever access maximizes data transfer on its
internal physical disks.

So yes, I would expect properly tuned QSAM I/O to out perform even an
incredibly well designed overlapped BSAM I/O access strategy on pure
sequential access, and with much less work.
    Joel C Ewing

On 3/21/21 9:21 AM, Joseph Reichman wrote:
> I don’t understand what the statement “QSAM does overlapped I/O automatically”
>
> When I do a qsam get the physical I/O is for 1 block every get just ups a 
> pointer 
>
> BSAM allows me to do multiple Reads each with their own DECB
>
> So I already initiate lots of physical I/O mainly because I have lots of 
> records or blocks 
>
> I find it hard to believe that a qsam get does anything more than read 1 
> block 
>
> Thanks 
>
>> On Mar 20, 2021, at 2:49 PM, Binyamin Dissen <[email protected]> 
>> wrote:
>>
>> On Fri, 19 Mar 2021 14:09:59 -0400 Joseph Reichman <[email protected]>
>> wrote:
>>
>> :>When doing overlapped I/O is there a way to tell if the I/O had completed 
>> on the subsequent reads 
>>
>> :>I check to see if the first fullword has been populated by the BDW
>>
>> Did you try without overlapping I/O?
>>
>> Post the code.
>>
>> --
>> Binyamin Dissen <[email protected]>
>> http://www.dissensoftware.com
>>
>> Director, Dissen Software, Bar & Grill - Israel
>>
...

-- 
Joel C. Ewing

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to