[Info-vax] XQP File Versions (was: Re: What does VMS get used for, these days?)
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Tue Nov 8 16:21:53 EST 2022
On 2022-11-06 18:18:29 +0000, Robert Carleton said:
> Going a slightly different way, does files versioning help relieve the
> programmers from some of the work necessary to roll back a corrupted
> dataset when something goes wrong with their job? In the IBM world,
> they talk about the production control analysts managing the batch
> processing. I suppose file version control might be one of the tools
> that they use, maybe in organizations that have a lot of duty
> separation.
For small stuff, sure. XQP file versions can and do work. For more
complex code changes as tend to be typical, file version rollbacks get
gnarly as most change sets lack a consistent number of versions for a
set of related code changes across a selection of files. Rolling back
changes with file versions then means finding the right group of file
versions. Which is usually not ;-1 or ;-2 across all of the various
files involved in the source code change.
XQP file versions also tend to need explicit management, and version
cleanups can be hazardous for the practices used at some sites. And
there's no good means to clean up intermediate file versions between
those that a developer might wish to preserve.
IBM Rational Clearcase VOB is a very nice implementation of file
versioning for app development, though that never really caught on more
generally. The VOB presents a build or version or baselevel or whatever
a developer or development team might call a collection of related
source code changes, as a synthetic file system as a view from within
the DVCS. The usual implementation here is based on a FUSE, which is
fairly commonly feature available. There are undoubtedly some other and
analogous implementations to VOBs, too. Switch the build or version or
whatever, and the (virtual, synthetic) part of the file system you're
looking and working within switches to what that build or baselevel
would look like.
For the development projects I'm typically dealing with, pushing
changes to the local DVCS is the usual approach when building stuff and
is integrated within the IDE, and that makes rollbacks easy. Once ready
to share, the code gets pushed from local into general availability.
Getting better support in LSEDIT might help some, and other folks can
choose to use VSC as that gets better integrated. If you're not using
an IDE, then you're probably going to be getting familiar with git
command line syntax.
As a competitive feature, I suspect there'd be much more interest in
integration with git or hg and with common IDE such as VSC than with
the existing file versioning scheme. But sure, XQP file versioning does
work for smaller efforts and smaller pools, and it does work when the
developer and the local tooling is lacking. (Which it kinda is lacking,
on OpenVMS. VSC and VGIT only gets you so far. The current compiler
overhaul will absolutely help, as that becomes available. And that'll
then help with better VSC integration, too.)
As for rolling back a database, that and usually some form of
integrated backups are part of pretty much any production database.
XQP RMS has some gaps here, as BACKUP is not integrated, as version
rollbacks are not integrated, and RMS journaling is not widely
deployed, and few apps I've worked with are integrated with host-based
RAID-1; with HBVS.
There are also some details around app scaling too, as a number of
OpenVMS production apps around could probably be re-hosted over onto a
big laptop, too. This in terms of storage and memory and processor
performance—less so features, though that can be debatable. In terms of
capacity and performance, any of the Itanium servers aren't all that
big, by 2022 standards. NVMe/NVMe-oF/CXL/TB/USB4/etc I/O is just stupid
fast. And obviously, VSI is and will be working on this support,
virtualized or paravirtualized or otherwise, or eventually native.
XQP file versions have been around for over forty years, so probably
not going to be a big draw for new apps and new developers. Not
compared with git or hg or VSC or recent compilers or other of what are
increasingly considered "table stakes" features.
If file versions are your marketing in an era of near-ubiquitous and
increasingly-integrated DVCS support for developers, and for production
rollbacks, you're going to find yourself in some comparisons and some
discussions.
Full disclosure: I've done exactly these XQP file version rollbacks
several times over the past couple of years. The astute reader might
wonder why those same environments were not under source code revision
control, but that's fodder for other discussions. That written, I've
done more rollbacks via DVCS, for those environments that are under
revision control.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list