Question Is it possible to determine the highest RECID in a storage area

RealHeavyDude

Well-Known Member
OpenEdge 10.1c Sun Solaris 64Bit ( soon to upgrade to OE 11.3 )

Apparently we've hit a bug in OE 10.1c where the RECIDs in one storage area have grown beyond the 32Bit limit into 64Bit where records which have a 64Bit RECID are not retrieved by mulit-index queries ( OE00197068 ). And this is a real nasty one.

Since the upgrade is scheduled for Q1/2014 I want to proactively monitor my storage areas and asked myself what the best way to determine the largest RECID in a given storage area would be.

For one I could check each table located in the given storage area but that might be damn slow.

But, since I know how many blocks I have and what the records/block setting is, I am able to calculate how many records I could store in that area under ideal conditions ( number of blocks * records/block ). That should give me a hint as to how many RECIDs there are in the area and whether the number is larger than the limit for a 32Bit integer ...

Since we can't upgrade to OE11.3 that fast I need to split storage areas whose RECIDs potentially grow beyond the 32Bit limit as an interim solution.

I would be very pleased if anybody would share her/his thoughts.

Thanks in Advance and Best Regards, RealHeavyDude.
 

TomBascom

Curmudgeon
The best you can do is to use the high-water mark along with rows per block as the basis for the hypothetical maximum recid.
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
For the purpose of this exercise I think it isn't necessary to know the highest recid in a given storage area with absolute precision. Basically, if you're within one block of the 32-bit limit you're already out of space. So dbkey (recid - recid mod RPB) is good enough. Each area (in Type II) has its own HWM, so if you monitor those you should have the info you need to track where you're near the limit.
 

RealHeavyDude

Well-Known Member
Thanks very much for your helpful insights.

That is exactly what I want to implement: A monitor that tells me when I get in danger to hit the 32Bit RECID limit in a storage area so that I can proactively splite it at an opportune moment.

Thanks and Best Regards, RealHeavyDude.
 

RealHeavyDude

Well-Known Member
Scary.

There might come a time where dbrpr is your last resort because the expert responsible for the database disabled after image after the backup has been taken in order to purge data. Although he also enabled it after the purge process completed successfully the resulting after image was of no use at all. But that didn't seem to bother him.

Heavy Regards, RealHeavyDude.
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
If I recall - 32 bit limits
64gb for 256 rpb
128gb for 128 rpb
256gb for 64 rpb

Those would be the maximum storage amounts per area, assuming 8 KB blocks. But if you're just monitoring AreaStatus._AreaStatus-hiwater, which is in blocks, the maximums would be:

RPB 256: 8,388,608
RPB: 128: 16,777,216
RPB 64: 33,554,432
etc.
 
Top