Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Stardust/Knowledge Base/Performance Tuning/Write Behind"
m |
m (→Prerequisites) |
||
Line 7: | Line 7: | ||
== Prerequisites == | == 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: | + | 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 | # A sequence-based database is used for the Audit Trail | ||
# Processes can be completed from start to end within one transaction | # 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 |
Revision as of 09:59, 11 November 2011
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