[Info-vax] CRTL and RMS vs SSIO
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Sat Oct 9 20:22:21 EDT 2021
On 2021-10-09 23:55:05 +0000, Greg Tinkler said:
> Such passion, love it.
>
> As for stream vs not stream, that appears to be a religious type issue
> so we will need to disagree on that.
>
> As for the original 2 issues from the paper 10 years ago.
> 1) updating a random range of bytes in a file, and loosing some updates
> Using RMS correctly will fix this problem. It is straight forward
> to build a sample using DCL, of all things, to get and update 2 random
> fix length records on the same disk block by 2 separate process and the
> data not be lost. This does not loose either updates.
> 2) multiple processes writing to a ORG:SEQ files concurrently.
> RMS supports this if you use SYS$PUT() and have the file marked as
> shared. NB you need to put a record otherwise you have a teared
> update, i.e. where part of the record is written then part of
> some-elses record then ... This is independent of VMS or *nix, it the
> same issue.
RMS is a database, and databases are quite common on OpenVMS and other
platforms.
Some databases will support recovery from crashes, replication across
multiple hosts, failover, clustering, and other factors.
For transactional databases, rollbacks are really handy; where you make
a series of updates and then discover (for whatever reason) you cannot
complete the sequence. This might be due to an app-detected issue, or
an app or system crash during the update sequence. If all of the
updates are made, the app then issues the commit. If all cannot be
made, the database rolls back to the initial state.
Without transactional processing (in the absence of RMS journaling and
lacking DECdtm integration), recovering from multi-part and multi-file
RMS updates get really gnarly when some part of the whole sequence
blows out.
Various databases found on OpenVMS will completely bypass RMS, too.
Some of the available databases for OpenVMS and other platforms have
some other interesting features, too. One very common database has a
portable database format across disparate operating systems, for
instance. You can copy the database file from (for instance) Linux to
OpenVMS, and can read and write the database file from within the
database client and its APIs; without requiring any sort of database
export/import or database reformatting.
Above is before we get to discussions of (for instance) graph databases
and object databases and other sorts, which aren't as common on
OpenVMS. PostgreSQL does have some capabilities here, too. As do other
databases.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list