Article

How to calculate the maximum Storage Area size ?

Information

 
Article Number000010463
EnvironmentProduct: Progress
Product: Openedge
Version: 9.x, 10.x, 11.x
OS: All supported platforms
Question/Problem Description
How to calculate the maximum Storage Area size ?
What is the Progress database maximum Storage Area size limit ?
How big can a Storage Area be ?
How to calculate the Maximum Number of Database Blocks Per Storage Area ?
What is the Maximum data storage area size with a database 1k blocksize?
Steps to Reproduce
Clarifying Information
Error MessageCreation of this extent would exceed the maximum number of blocks for area <Area Number> prostrct add FAILED. (12867)
Defect/Enhancement Number
Cause
Resolution
For any Progress database, prior to OpenEdge 10.1B, before the introduction of 64-bit rowids (2^63 rowids) when used in conjunction with Type II Storage Areas, the Progress Database has a two billion rowid (2^31) maximum per database Storage Area which limits the maximum Storage Area size.

In these versions or 10.1B and later versions that still use Type I Storage Areas, the maximum application Storage Area size is determined by three values:
  1. Maximum number of records per Storage Area: 2,147,483,648
  2. Number of Records Per Block of the area as defined in the structure file: dbname.st
  3. Database block size
To calculate the maximum 32-bit rowid Storage Area, first, it is necessary to calculate the Maximum number of database blocks per Storage Area using:

Maximum number of database blocks per Storage Area = Maximum number of records per storage area / number of records per block

Then use the result to calculate the Maximum Storage Area Size:

Maximum storage area size = Maximum number of database blocks per storage area * Database block size

Example: 

A database that uses a Type I Storage Area with 32 records per block and a 4K (4096 bytes) database block size.

Maximum number of database blocks per Storage Area = 2,147,483,648 / 32 = 67,108,864
Maximum storage area size = 67,108,864 * 4096 = 274,877,906,944 bytes = 256GB.

The following table provides a Quick Reference lookup of the most common RPB values:
 
Records per BlockDatabase Blocksize
148
161285121,024
3264256512
6432128256
1281664128
25683264
Workaround
Notes

References to Other Documentation:

Progress Database Administration Guide and Reference, Part I Chapter 3: "Progress Database Limits".
Progress Database Administration Guide and Reference, "Table 3: Maximum Application Data Storage Area Size"

Progress Articles: 

000044869, When does the 2 billion rowid limit per Storage Area apply?   
P106007, Best Practices involving the Schema Area.   
P110420, Best Practices for Managing Records-Per-Block Settings   
P130646, Reserved space used for recovery limits user addressable maximum storage area size.  
P110106, Program which reads from database getting error SYSTEM ERROR: Attempt to read block 2147467008 which does not exist. (210)   
P110849, Getting error (210) with block number around 2 billion.  

 


 
Attachment 
Last Modified Date4/4/2018 8:20 PM


Feedback
 
Did this article resolve your question/issue?

   

Your feedback is appreciated.

Please tell us how we can make this article more useful. Please provide us a way to contact you, should we need clarification on the feedback provided or if you need further assistance.

Characters Remaining: 1025