MBO Cache Groups

Understand how to effectively use MBO cache groups.



A cache group contains MBOs that all have the same load/refresh policy. See Cache Groups in the Context of MBOs.



All MBOs within a cache group are refreshed as a unit for on-demand and scheduled cache policies. MBOs in DCN cache groups are updated via DCN messages in an ongoing basis. See Cache Groups and Synchronization Groups.



Use cache groups to break up expensive data retrievals from the EIS.



To avoid refreshing and retrieving MBOs not related to a synchronization group, map synchronization groups to cache groups.



Avoid circular dependencies between cache groups.



Use one synchronization session for multiple synchronization groups during runtime to reduce overhead if appropriate.



Do not model relationships spanning multiple cache groups—in some cases, references may resolve incorrectly.

Cache Groups in the Context of MBOs

All MBOs within a cache group are governed by the specified cache group policy. A cache group defines how the MBOs within it are loaded and updated from the EIS to the CDB. With on-demand and schedule policies, all MBOs are loaded and updated as a unit. In general, the larger the unit, the longer it takes to complete. If data is not required all at once, you can employ multiple cache groups to break up an expensive load operation. This allows loading to occur in parallel with a lower overall wait time when compared to a large load. For example, load products and the product manual in separate cache groups. For very large data volume, the continual refresh cost may be too expensive, in which case a DCN cache group policy allows the MBOs in the cache group to be updated as changes occur in the EIS through notification messages.

Cache Groups and Synchronization Groups

Cache and synchronization groups are not related. While a synchronization group specifies which MBOs to synchronize, a cache group defines which MBOs are loaded into the CDB, and when. However, Sybase recommends that you coordinate a synchronization group with a corresponding cache group so only the synchronized MBOs are loaded or refreshed. If the MBOs in the synchronization group are members of a much larger cache group, the devices performing the synchronization may wait a long time for the entire cache group to refresh.

Circular Dependencies

Circular dependencies spanning cache groups are not supported, however it is possible to have MBOs forming a cycle as long as they are all within the same cache group. There is a performance impact when processing updates whether it is by DCN or applying the results of cache affecting operations. Developers should create circular relationships only when necessary. Consider if it is reasonable to forgo the relationship and instead use custom code to handle the navigation.

Relationships and Cache Groups

The MBO developer must be cautious when defining relationships that span cache groups as this can cause references to be unresolved. For example, sales order has a one-to-many composite relationship with sales order items. Both MBOs are in separate cache groups. Assuming that both are loaded in-bulk (all instances retrieved through a single read). If they have different cache intervals, the sale order items cache group could refresh with orphaned instances but without corresponding sales orders. As a general rule, keep relationships within the same cache group.