Salesforce

Offline AI enablement does not set aiblocksize = biblocksize

« Go Back

Information

 
TitleOffline AI enablement does not set aiblocksize = biblocksize
URL Name000033120
Article Number000155212
EnvironmentProduct: OpenEdge
Version: 10.1B, 10.1C, 10.2x, 11.x, 12.x
OS: All supported platforms
Question/Problem Description
Enabling After-Imaging (AI) offline (rfutil -C aimage begin) does not set the aiblocksize equal to the current biblocksize
AI has to be disabled (and AIMGT if enabled) in order to correctly set the AI Blocksize to the BI Blocksize.
Steps to Reproduce
Clarifying Information
Enabling AI online (probkup online enableai) automatically sets ai block size to be the same as bi block size for
performance reasons.
Error MessageAfter-imaging and Two-phase commit must be disabled before AI truncation. (282)
Defect NumberEnhancement OE00222671 / PSC00245720 / OCTA-2846
Enhancement Number
Cause
Enhancement OE00222671 / PSC00245720 / OCTA-2846 has been logged for enabling ai offline to match the online functionality.
Resolution
This enhancement has not been implemented in the product to date (2020/11/01). 

When the aiblocksize is not the same size as the before-image blocksize:
  • This can yield unexpected consequences should after-imaging need to be disabled then re-enabled online at sometime in the future. 
  • This means that if the aiblocksize = 16 (initially changed offline truncate aiblocksize and the before-image blocksize is smaller eg biblocksize = 8), the aiblocksize will be re-set equal to the biblocksize (8 KB) for performance reasons when subsequently enabling AI online (probkup online enableai). 
  • Another use-case is when the aiblocksize is changed when initially enabling after-imaging. At sometime in the future, ai is disabled offline (aioff) followed by online enableai enableaiarchiver
  • Having the AI blocksize <> BI Blocksize is a performant hit. In essence, if the AI block half the BI block
    As soon as an AI block needs to be flushed off the aibufs queue, the database manager must first flush the BI Block with the associated notes and the DB blocks. Therefore, BI blocks can be flushed sooner that are not being filled.

To resolve the AI and BI Blocksizes:

Before enabling AI online, ensure the biblocksize is the size required for the aiblocksize or it will be changed when you enable online (or disable and enable online as the case may be).

Changing the bi blocksize is an offline operation and changing the AI blocksize requires After-Imaging to be disabled:

In order to change the aiblocksize, after-imaging (and all it's dependent features viz: AIMGT and OER) must first be disabled.
$   rfutil <dbname> -C aimage end
 
Once disabled, (optionally the BI blocksize) the AI blocksize can be changed:
$   proutil <dbname> -C truncate bi -G 0 -biblocksize 16
$   rfutil <dbname> -C aimage truncate -aiblocksize 16
 
Re-enable After-Imaging (and site-specific dependencies):
$   rfutil <dbname> -C mark backedup
$   rfutil <dbname> -C aimage begin -G 0
$   rfutil <dbname> -C aiarchiver enable
$   proutil <dbname> -C enablesitereplication source

For further information refer to Article  How to change the after-image block size  
Workaround
Notes
Keyword Phrase
Last Modified Date11/23/2020 1:16 PM

Powered by