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

 


Article

Reserved space used for recovery limits user addressable maximum storage area size.

Information

 
Article Number000012254
EnvironmentProduct: Progress
Version: 9.1E04
Product: OpenEdge
Version: 10.0B05, 10.1x, 10.2x
OS: All supported platforms
Question/Problem Description
Reserved space used for recovery will  limit the user addressable maximum storage area size.
Database engine has reserved space that will limit the user addressable maximum storage area size.
What other limits impact the maximum storage area size?
Reserved Space by the Database Engine limits the user addressable  maximum storage area size.
Why can't a process access an areas maximum storage size?
Is there a limit as to how much space in an area that a user process can access?
Database area size limits and their association with reserve space within an area
How much space is reserved in an area for crash recovery that will limit database growth?
Steps to Reproduce
Clarifying Information
Error Message
Defect/Enhancement Number
Cause
Resolution

The database engine reserves space within a storage area for recovery purposes.  A database may grow during recovery, space in each data area is reserved to accommodate this growth.  Users are allowed to expand a database up to the maximum area size minus the reserved value.  For databases areas with a block size of 1024 KB or 2048 KB and 128 or 256 RPB (records per block), 1 GB of space is reserved for recovery.  Other database block sizes and records per block combinations have a 5 GB reserve. As of OpenEdge 10.2B, all Type II storage areas have 5 GB reserved space.

For a user, the number of usable blocks in a data area is the maximum addressable number minus the reserve blocks. 
The maximum addressable block number depends on the dbkey size and the number of records per block.

  • This is (2^^(31-recbits))-1 for 32-bit dbkeys and (2^^(63-recbits))-1 for 64-bit dbkeys. 
  • The number of blocks reserved for recovery is the reserve size in bytes (1 GB or 5 GB) divided by the block size.  
  • For 32-bit dbkey areas with one record per block (recbits=0), the maximum addressable block number is (2^^(31-0))-1, or 0x7FFFFFFF.
  • The reserve would be 5 GB (0x140000000)
  • For an 8192 KB database block size area, the maximum block number that the user may address would result in 0x7FF5FFFF (2,146,828,287) user addressable blocks: 
(0x7FFFFFFF - (0x140000000/0x2000)). 

Warning message 13435 is written to the database log file when the variable extent in an area grows to 80% and 90% of the maximum user addressable block number. These warnings cannot be relied on if the area is comprised of fixed length extents that include this range. Refer to Article 000072087, Warning message (13435) doesn't report on fixed extent of Type I Area when it is hitting rowid limit  

Database areas can exceed the user addressable space as a part of crash recovery.  When going through crash recovery, the database will silently start writing to reserved space within an area as needed dependent upon is as apart of crash recovery we are forced to exceed the current user addressable space.  This is important for DBA (Database Administrators) to be aware of.  The reserve space within an area is a mechanism that ensures that when user addressable space within an area is reached, that we are able to go through crash recovery for further action to be taken on that area such as migrating tables contained within that area to other Type I or Type II storage areas or to archive data etc.  Once that reserved space has been breached, DBAs need to be aware that there is no guarantee that in future attempts to go through crash recovery, that they will be able to.  Whether or not they can get through future crash recovery efforts for this area will depend upon space left within the area as well as the amount of transactions for blocks in that area that may need to be undone and redone as a part of crash recovery.   

Tools that can be used to monitor area growth are:

Database Statistics Tool

This information can also be gathered by looking at the output for the PROSTRCT STATISTICS command which can be run online or offline. 

Example command:  prostrct statistics dbname

Workaround
Notes
Attachment 
Last Modified Date12/24/2018 1:09 PM