Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Stardust/Knowledge Base/Performance Tuning/Write Behind
Contents
Introduction
The Write Behind feature has been introduced for mainly STP-driven solutions characterized by high volume and throughput with the need for low latency. The basic idea around Write Behind is to write process run information as a batch asynchronously into the database, instead of doing it right away. Writing process run information synchronously creates a lot of contention on sequence retrieval and redo logs, which can’t be much reduced / optimized. Write Behind, however, dissolves such contention, since the number of database operations are optimized and reduced to a minimum. That way much more process instances can be completed within a given timeframe. Depending on complexitiy of the processes, multiple hundreds of process instances can be processed within a second.
Prerequisites
There are two main preconditions that are important to keep in mind if process run information should be written asynchronously into the Audit Trail. Write Behind works if:
- A sequence-based database is used for the Audit Trail
- Processes can be completed from start to end within one transaction
The latter precondition is essential. If a process is not completed in one transaction, its current state will be written to the Audit Trail synchronously. A process cannot be completed in one transaction if:
- It includes a manual activity
- Sub-processes are invoked asynchronously
- Fork-On-Traversal flags have been defined explicitly
- JMS Request-/Response activities are used
- Activities are hibernated first after creation
- Processes define AND-Splits and/or AND-Joins
- Processes are triggered asynchronously