Understanding Application-Based Assembly mode |
Introduced with V6.3, the Application-Based Assembly (ABA) mode of operation provides significant runtime performance advantages over the alternative rules assemble cache approach, which remains available and supported.
Since 6.3, applications can operate in one of three modes:
As a best practice for performance, your applications should employ the fully ABA cache mode for new applications developed with V6.3 through V7.1, and for applications developed in previous releases which are eligible, as described here. After 7.1, your applications should use VTable.
The mode of an individual user or other requestor is determined by the value of two settings:
Like other prconfig settings, the value may be saved in the prconfig.xml file, or as a specially-formatted Dynamic System Setting data instance. (See How to create or update a prconfig setting.)
These two settings values work in combination:
This setting must have the same value for all nodes in a cluster.
ABA mode is sometimes called AppCentric mode.
An application is fully ABA if the Revert checkbox on the Settings tab not selected, for every access group that references the application, or the prconfig.xml setting fua/assemblyCacheMode is set to AC.
When operating in this mode, the RuleSet list is ordered using the ABA model for all requestors (and all other operations that use a RuleSet list.) The ABA cache is used to retrieve assembled rules.
ABA operation provides a marked performance improvement over rules assembly mode.
An application operates in fully rules assembly mode if the Revert checkbox on the Settings tab is selected, for all access groups that reference the application, or the prconfig.xml setting fua/assemblyCacheMode is set to RA.
This mode exactly matches RuleSet list ordering and caching on as implemented in PRPC versions prior to V6.3. Run-time execution is normally slower than ABA mode. The Rules Assembly cache is used. The ABA cache is not used.
Rules Assembly mode is suitable for applications which do not meet the restrictions of ABA mode, presented below.
An application operates in mixed mode if the Revert checkbox on the Settings tab is checked on some, but not all, of the access groups that reference the application, and the fua/assemblyCacheMode is set to Mixed.
Mixed mode is suitable for applications that meet the requirements of ABA mode, but are in transition towards fully ABA operation. Users in either mode will experience identical functional results, but those accessing the application in Rules Assembly mode may experience poorer performance.
Your new applications created with the Application Express are qualified for full ABA mode. This is the default.
Your existing applications developed in versions before V6.3 are definitely qualified for full ABA mode, and best performance, if the application includes no RuleSets of these specialized types:
For these special types of RuleSets, the order of the RuleSet list differs when in ABA mode from the order when in rules assembly mode. This means that it is possible — though unlikely — that rule resolution may in specific cases pick a different rule in ABA mode versus the rules assembly, leading to unexpected and incorrect results. For details on how the RuleSet lists differ, see How the system assembles and uses your RuleSet list.
Rules Assembly cache | |
Understanding caching
How the system assembles your RuleSet list About Access Groups |