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

Reply via email to