[Info-vax] Byte range locking - was Re: Oracle on VMS

David Froble davef at tsoft-inc.com
Mon Nov 21 23:27:05 EST 2016


Robert A. Brooks wrote:
> On 11/21/2016 9:47 PM, Craig A. Berry wrote:
>> <discussion of SSIO and byte range locking snipped>
> 
>> SSIO involves a pretty complex interaction among
>> RMS, the XQP, the CRTL, and XFC, so there are a lot of things that could
>> go wrong. I believe VSI looked at it long enough to say "we're not doing
>> that right now" but they've kept it on their list of research projects.
> 
> Unless a customer shovels a lot of money our way, SSIO won't get any 
> attention
> until after X86 ships.
> 
> I *think* that what shipped as part of the SSIO project was a very limited
> prototype that was limited to a single node with no cluster wide locking 
> semantics,
> so it's not a surprise if something fundamental is not fully implemented.
> 

 From the little reading I've done, I see several things that either puzzle me, 
disgust me, or both.

SSIO appears to be something that is for C, not for VMS.  I'd think that if such 
work was to be done, it would be for VMS, usable by any languages on VMS.

Of course, something more general might not be as useful in running *ix code, 
but, I'd think wrappers for the capability should be helpful for that task.

It appears I cannot find my Internals and data structures book.  Not sure how 
helpful it would have been.  What I've never thought about before, and now seems 
to me to be a central aspect of this entire issue, is how VMS handles updates on 
disk of pieces of data smaller than the disk cluster size.  For example, disk 
cluster size of 8, and reading and updating one block.

Is there any material that describes this capability?  Is there anyone at VSI 
that is knowledgeable, and willing to discuss the capability?

Or, perhaps it's not an issue, and reading and updating a range of blocks will 
just work, as it does now.

What I've been thinking is to determine the full range of blocks in which the 
string of bytes resides, lock the full range of blocks, when available, update 
the I/O buffer, and write the full buffer to disk.  Should work, been doing it 
for over 30 years.  Should work in a cluster.

Thoughts?



More information about the Info-vax mailing list