‘High Performance Engineering’ phrase has the important word ‘Engineering’. Engineering means achieving design goals using least amount of resources, resulting in optimum cost of a solution. This means we need to incorporate High Performance (HP) Design Patterns in an enterprise class solution to increase scale & system capacity using minimum infra and to increase capacity by reducing loads automatically and smartly when the system is over loaded. There are design patterns to achieve both of these objectives.
Transaction Splitting Design Pattern (TSDP) is used to manage & reduce loads when a system is over loaded, i.e., system utilization has breached a threshold specified (say 90%). When system load breaches this threshold, the TSDP behavior has to kick-in and when the system load falls below a TSDP exit threshold (say 85%), then the TSDP behavior will be stopped. This pattern starts reducing system load, when overloaded, ensuring that all services & transactions are sustained & push up the capacity to handle higher load, without increasing system utilization. It helps an enterprise system to gracefully manage and handle load, when overloaded and prevents crashes.
A Transaction has multiple updates to database/s. A Transaction using TSDP classifies some of these updates as critical (primary) and non-critical. It also has access to find the real-time system load. When the system load is normal (less than the threshold), the transaction performs all of its updates. If the system is overloaded, the transaction updates only the critical updates and defers the non-critical updates. The critical updates must contain all primary information of the transaction to execute the deferred updates at a later point in time. This sudden reduction in transaction loads will bring down the system load and system will be able to process current load and also can take up some more load. Only requirement is that the deferred portion of transactions makes up significant portion of the system load. And TSDP needs to be implemented in the top ‘n’ number of transactions. The ‘n’ number will depend on the diversity and peak load composition of an enterprise system. TSDP transaction splitting behavior will be stopped when the system load falls below an exit threshold level. Deferred updates should be taken up by a TSDP Deferred Update processor, when the system load falls below a TSDP Deferred Updates threshold (say 75%). The Deferred Updates will have to be implemented with prioritization within pending deferred updates and ordered by time of creation.
Patterns uses TSDP in Bot Worker based hyper automation implementations dealing with enterprise class transaction loads.