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

How to create a Type II Storage Area

Information

 
Article Number000022229
EnvironmentProduct: OpenEdge
Version: 10.x, 11.x
OS: All supported platforms
Question/Problem Description
How to create a Type II Storage Area?
How to create SA II?
What is a Type II Storage Area?
What are the differences between Type II and Type I Storage Areas?
How many more records can a Type II Storage Area contain than a Type I Storage Area?
What is the maximum area size of a Type II Storage Area compared to a Type I Storage Area?
Steps to Reproduce
Clarifying Information
Error Message
Defect/Enhancement Number
Cause
Resolution
Differences between Type II and Type I Storage Areas:

1. The Type II Storage Area architecture was introduced in OpenEdge 10.  The difference between Type I Storage Areas (introduced in Progress 9.x) and Type II Storage Areas structure is the concept of "clusters" per Storage Area which are a grouping of database blocks.  There are three choices for cluster size:
  • Small Clusters (8 database blocks),
  • Medium Clusters (64 database blocks),
  • Large Clusters(512 database blocks).

Whereas a Type I Storage Area contains individual database blocks, or in the new definition, a 1 database block Cluster size.

2. The maximum size of a Type II Storage Area is fixed at approximately one Petabyte when large files are enabled. A maximum of 1024 extents per area and a maximum size of one terabyte per extent.

Maximum area size = maximum-number-of-extents-per-area * maximum-extent-size = 1PB

The theoretical maximum number of records per Type II Storage Area is calculated as follows:

Maximum records per area = Maximum area size * records-per-block / datbase_blocksize

For example, a Type II Storage Area with 64 records per block defined in a database with KB blocksize,
would yield 2^46 or 70,368,768 million addressable rows.

The number of records per Type II Storage Area is governed by the maximum area size rather than the addressability of 64-bit database keys as opposed to the hard limit on Type I Storage areas of 2^31 addressable rows per area (and Type II Storage Areas prior to OpenEdge 10.1B):

Maximum Type I Area Size = 2,147,483,648/(records-per-block)*datbase_blocksize

Continuing the above example, a Type I Storage Area with 64 records per block defined in a database with 4 KB blocksize, would yield a 128GB Maximum Type I Storage Area size.

Additionally OpenEdge reserves space within each area for recovery purposes. The reserved space allows room for database growth during recovery. A database area can grow up to its maximum size, less the reserve recovery space. Please refer to Article 000012254 for further details on reserved space and Article 000044869 which discusses the 2^31 rowid limit in further detail.

Creating a Type II Storage Area Structure:

The method is no different from creating Type I Storage Areas (PROSTRCT CREATE | ADD). The difference is the definition in the structure file (.st) used. In addition to the Type I structure file, a third parameter after the "records per block" area definition, defines the number of blocks per cluster for that Storage Area:
  • Type I Storage Areas are identified as being defined with 1 database blocks per cluster (or the value not specified at all).
  • Type II Storage Areas are identified as being defined with either 8, 64, or 512 database blocks per cluster.

For example:

# Type I Storage Area definition:
#  
# d "[your storage area name]":[area number],[records per block] [location] [f/v] [size (KB)]
# Type I Storage Area 13, with 64 records per block and 1 blocks per cluster
# Note the ommission of the cluster size then defaults the area to a Type I structure.
d "Data AreaI":13,64 /data f 1024000
d "Data AreaI":13,64 /data

Alternatively, the 
;[cluster size] could be included, with the same result as above, a Type I structure:
d "Data AreaI":13,64;1 /data f 1024000
d "Data AreaI":13,64;1 /data


# Type II Storage Area definition:
#  
# d "[your storage area name]":[area number],[records per block];[cluster size] [location] [f/v] [size (KB]
# Type II Storage Area 131, with 64 records per block and 8 blocks per cluster
d "Data AreaII":131,64;8 /data f 1024000
d "Data AreaII":131,64;8 /data

 
Workaround
Notes
Progress Articles:

000044869, When does the 2 billion rowid limit per Storage Area apply?   
000010845, How to find out if an extent is a Type I or a Type II Storage Area?   
000021762, Guidelines for Type II Area Blocks per Cluster setting?   
000022169, Can a probkup of Type I Areas be prorest into a Type II Storage Area ?   
000029900, VST's to monitor space in a Type II Storage Area?   
000013241, What to do when you hit the record limit for a Type I area?   
000012254, Reserved space used for recovery limits user addressable maximum storage area size.   
  

References to Other Documentation:

OpenEdge Data Management: Database Administration:
Database Basics, Creating and Deleting Databases, Creating a database with PROSTRCT CREATE, Creating a structure description file
Attachment 
Last Modified Date5/31/2019 12:58 PM