On 25/07/2021 1:01 am, Kirk Wolf wrote:
We recently released two new shell command utilities in Co:Z which
have all sorts of options for loading/unloading PDS/PDSEs to/from zFS
files.
https://www.dovetail.com/docs/zos-utilities/dsp-ref_getpds.html
https://dovetail.com/docs/zos-utilities/dsp-ref_putpds.html
The code is 98% C++, with bpam/bsam assembler routines. Our C++ is
31-bit LE with XPLINK (IMO the only rational linkage for C++ at
scale). Our assembler code is quite small and uses XPLINK linkage
macros (EDCXPRLG, EDCXEPLG) and also the XPLINK stack local data.
This is *so* much nicer than the old way of writing reentrant code.
All of the BSAM fancies (DECB/buffer queue, record blocking, etc) is
done in C++. Only one DCB (BPAM/BSAM).
The performance of loading/unloading a large PDS/PDSE is great - like
two orders of magnitude faster than /bin/cp which opens the dataset
for each and every member :-)
We also support ISPF-style ENQs with DISP=SHR, which is really handy
for many use cases, like devops.
We're using getpds/putpds for new DevOps tooling to sync files to/from
the file system to data sets. Not only is the performance superb (cp
taking 2 minds to move a large PDS as opposed to 3 seconds) the ability
to write to a PDS with DISP=SHR is a game changer as we only want to
stage using optimistic locking.
This is top notch software engineering!
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN