Performance design considerations

Consideration for performance is important when designing a solution. IBM® Product Master allows for complex data models and business logic. This flexibility allows for the handling of advanced business rules. However, the availability of this flexibility can lead to simple solutions getting more complicated than necessary. Product Master does not restrict the size or the number of objects that are used in the design of a solution, therefore, it is important to follow these performance design considerations.

The following common guidelines should be adhered to avoid major performance problems:
Keep the number of specs between the range of 10 - 100 specs.
The number of specs can sometimes reach higher than 100 until the size of the individual specs is small. Going beyond 1000 requires extreme care and consideration as it dramatically increases the memory requirement on the system. The larger number of specs lead to the larger more complex views that increase the memory footprint of individual users. This type of solution requires highly custom tuned load balancers and garbage collection settings.
Keep the size and count of lookup tables to a minimum.
Lookup tables are cached in memory. Increasing the size or count of the lookup tables consumes more memory for the caching of the tables thereby leaving less memory for other operations. This in turn leads to frequent garbage collections, sluggish, and unpredictable performance of the system. Also, large number of lookup tables values in the single edit user interface can affect the rendering times of the user interface as large amounts of lookup table data is sent across for the creation of the drop-down menus.
Keep the number of steps in a workflow to less than 100.
Workflows can get complex in Product Master. They can be used to manage complex business rules. Typical workflows are less than 100 steps in size. Workflows larger than this can result multiple problems ranging from an unmanageable user interface to very slow operations that manage and maintain the workflow.
Keep the number of related items for an item to less than 100.

If the number of related items for an item are more than 100, results in slow performance. Higher volume of related items causes more extensive relationship attribute related queries which compounds to performance degradation.

Lay out the user interface in a manageable way.
As the complexity and scale of the data increases, so does the complexity of the data and the screen. Laying out the user interface in a manageable way is critical for the user performance. Consider the following things to reduce the impact of the user interface's performance:
Manage the number of view and attribute collections that are used.
Collections and views are cached per user and are created the first time that a user accesses them after login. Having a large number results in a lot memory usage per users and adversely affects the garbage collection activity.
Manage the number of items and attributes that get displayed at a time on the multi edit screen.
The larger the number of items and attributes, the slower the user interface screen performance. The user interface screen can take longer to refresh or load due to the amount of data that is trying to display.
Manage the amount of nested-multi-occurrence information is also critical.
Within Product Master user interface, each nested occurrence of information is rendered as non-trivial HTML code that the client's browser must interpret. If you have many (even just tens, but especially hundreds) of multi-occurrences that display (especially nested occurrences) on a single screen this can cause rendering to be incredibly slow. Server processing can complete within ~1 second but the user response can sometimes take more than 60 seconds simply due to the browsers rendering taking so much time. Therefore, making appropriate decisions during the data modeling stage of the project to avoid this kind of complexity in the user interface is important.