This chapter describes techniques for improving Oracle Event Processing application performance by using partitioning and batching, and includes information specific to high availability performance tuning.
This chapter includes the following sections:
When creating your EPN, consider the following performance tuning options:
For more information, see Chapter 25, "Developing Scalable Applications".
You can improve scalability by configuring an event partitioner channel. When you configure a channel to use an event partitioner, each time an incoming event arrives, the channel selects a listener and dispatches the event to that listener instead of broadcasting each event to every listener for partitioning events on a channel across its output event sinks.
For more information, see Section 220.127.116.11, "EventPartitioner".
By default, a channel processes events as they arrive. Alternatively, you can configure a channel to batch events together that have the same timestamp by setting the
For more information, see Section 10.1.6, "Batch Processing Channels".
com.oracle.cep.cluster.hagroups.ActiveActiveGroupBean, you can partition an incoming JMS stream in Oracle Event Processing applications by utilizing the notification groups that the
For more information, see Section 18.104.22.168, "ActiveActiveGroupBean".
When creating high-availability applications for deployment to multi-server domains, consider the following performance tuning options:
For more information, see Section 24.1.3, "Designing an Oracle Event Processing Application for High Availability"
If you only want availability and are not concerned with recovery time, then it is possible to use smaller, less equipped hosts as secondaries. However, to maximize high availability performance, ensure that all hosts in the multi-server domain are identical: same number and type of processor, same quantity of memory, same number and size of disks.
The Oracle Event Processing high availability input adapter is applicable to all high availability quality of service options. However, because the high availability input adapter increases performance overhead, it is not appropriate for some high availability quality of service options (such as Section 22.214.171.124, "Simple Failover" and Section 126.96.36.199, "Simple Failover with Buffering").
If you are using application time from the event then you do not need to use the input adapter. Application time from the event is always preferable from a performance standpoint.
Consider increasing the
batch-size to reduce the amount of time the primary server spends broadcasting event messages and to reduce the amount of time the secondary servers spend processing these messages.
batch-size may increase the likelihood of missed and duplicate events if the primary fails before broadcasting an event message with a large number of events.
For more information, see Table 24-5, "Child Elements of ha-inbound-adapter for the High Availability Input Adapter".
Consider decreasing the
trimming-interval to reduce the amount of time the primary server spends broadcasting trimming messages and to reduce the amount of time the secondary servers spend processing these messages.
trimming-interval may increase recovery time as the new primary server's in-memory queue will be more out of date relative to the old primary.
For more information, see Table 24-11, "Child Elements of ha-broadcast-adapter for the Broadcast Output Adapter".
When configuring Oracle Coherence in a high-availability architecture, consider the following performance tuning options:
For more information, see "Performance Tuning" in the Oracle Coherence Developer's Guide at
To reduce failover time, increase Coherence heartbeat timeout machine frequency and reduce the number of heartbeats before failure.
To improve messaging performance, implement the Oracle Coherence Portable Object Format (POF) for serialization. POF is a language agnostic binary format that was designed to be very efficient in both space and time. Using POF instead of Java serialization can greatly improve performance.
For more information, see