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
