Skip to main content

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.

Jump to: navigation, search

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

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:

  1. A sequence-based database is used for the Audit Trail
  2. 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:

  1. It includes a manual activity
  2. Sub-processes are invoked asynchronously
  3. Fork-On-Traversal flags have been defined explicitly
  4. JMS Request-/Response activities are used
  5. Activities are hibernated first after creation
  6. Processes define AND-Splits and/or AND-Joins
  7. Processes are triggered asynchronously

Back to the top