[Info-vax] Integrated Databases

Dave Froble davef at tsoft-inc.com
Tue May 29 22:50:09 EDT 2018


On 5/29/2018 11:48 AM, Stephen Hoffman wrote:
> On 2018-05-29 14:51:26 +0000, Dave Froble said:
>
>> On 5/29/2018 9:34 AM, Stephen Hoffman wrote:
>>
>>>> PostgreSQL would be a phenom bundle for businesses looking for an
>>>> enterprise class database.
>>>
>>> Ayup.   https://www.postgresql.org/docs/10/static/index.html
>>>
>>> But that port has unfortunately been blocked by flaws in the OpenVMS
>>> SSIO implementation.
>>
>> Which should be fixable by a rather simple enhancement to the DLM.  I
>> suggested such an enhancement to VSI, namely numeric range locking,
>> and hope that work on the port has pushed any consideration of the
>> suggestion until after the port is completed.  Or, perhaps, NIH is the
>> problem.  We'll see.
>
> SSIO and the issues around atomicity are not particularly related to
> byte-range locking.
> http://de.openvms.org/TUD2012/opensource_and_unix_portability.pdf

Ok, that was a bit interesting.  Apparently I didn't understand the 
entire problem.

I do seem to recall someone, perhaps Robert, stating that a partial 
block read can be done.  He didn't mention partial block writes.  Nor am 
I all that sure that such would be a good idea.

The first problem I see with the SSIO is that it appears to be 
implemented in the CRTL.  That is about as disgusting an approach as I 
can imagine.  If it is to be a VMS capability, (and disk I/O seems to 
fit into that catagory), then it should be implemented as part of VMS.

Regardless, from what I read, it appears that there is still a need for 
locking a range of bytes, which may span block boundaries, and may not 
include whole blocks.  Now, as I see it, locking should be done by the DLM.

At this time, the DLM has one type of lock, a lock on a resource name. 
My idea was to allow multiple types of locks.  A second type might lock 
a numeric range, x to y.  Some part of the lock would be two 8 byte 
integers, and for that type additional code to determine if any part of 
that range is already locked.

Once there are DLM types of locks, while I have no idea at this time 
what a third type of lock might be, there is the option for additional 
types of locks.  Sort of flexible, huh?

As for the I/O.  There are several concerns.

First, we're looking at soon having memory for storage, beyond SSDs 
which mimic disks.  With such, there is no longer a concept of disk 
blocks.  There would be no temporary data in buffers, all work would be 
direct to memory.

If Postgre is indeed a worthy database product for VMS, and I know 
absolutely nothing about the product, perhaps it can be modified to 
conform to disk I/O capabilities of VMS.  This would immediately give it 
all the current VMS capabilities, clusters, mirrored storage, etc.

Perhaps as the SSIO appears to attempt, additional I/O capabilities 
should be implemented on VMS.  Not sure this is a good approach, as long 
as disks are still in use.  Seems to me to be chasing the past, not the 
future.

Note, most of the above comes from the perspective of software 
architecture, more so that engineering.




More information about the Info-vax mailing list