A.1.4 Saga Performance

The performance and throughput of Saga applications depend on the Saga framework and AQ performing at an optimal level. The database systems (PDBs) should be configured with adequate JOB_QUEUE_PROCESSES to facilitate AQ propagation and notification. Java applications should configure sufficient producers and consumers. See numListeners and numPublishers in the Configuration section of the Saga annotations.

In addition, the following parameters can be modified to achieve a higher level of performance.

queue_partitions

For higher throughput, Saga entities can deploy several queue partitions. By default, Saga entities use a single queue partition. Multiple queue partitions allow for a greater degree of parallelism for the Saga framework. All entities in the topology must have a matching number of queue partitions configured.

See Also:

DBMS_SAGA_ADM for a complete description of the SYS.DBMS_SAGA_ADM package APIs.

listener_count

By default, the Saga framework uses the AQ message notification feature for handling the message traffic on the coordinator’s IN queue. Under high load, the coordinator’s IN queue may become a bottleneck for performance. The listener_count parameter of the DBMS_SAGA_ADM.ADD_COORDINATOR() procedure can be revised to a number greater than 1. This enables Saga message listeners to process messages on the Saga coordinator’s IN queue instead of using AQ notifications. Saga message listeners eliminate some of the overheads of AQ message notification and provide an efficient mechanism for handling the inbound message traffic for the Saga coordinator.

See Also:

DBMS_SAGA_ADM for a complete description of the SYS.DBMS_SAGA_ADM package APIs.