Serial execution in Back4

Build 1501 on 14/Nov/2017  This topic last edited on: 13/Sep/2015, at 15:00

Some data sources or scheduled workflow should not run in parallel on multiple threads - e.g. workflows that do non-atomic modifications to the database (search & modify or spike - for example the workflow that imports and merges wires: http://forum.teradp.com/topic.asp?TOPIC_ID=822) or that access external systems that do not support concurrent access.

From build 1.6.1685 Back4 implements a system to synchronize the execution of workflows, so that specific procedure are always executed sequentially and never concurrently, event when there are multiple processing threads.

Schedule workflows

The execution profiles have a new 'Serial execution' option:

serialexecution1

When a workflow is scheduled for execution using a profile with this option enabled Back4 will use a lock to prevent multiple parallel execution of that specific workflow.

By default the option is not set - preserving the old behavior (e.g. concurrent execution)

Data sources

The data source templates have a new 'Serial execution' option as well:

serialexecution2

The three possible values have this meaning:

No or <Not set>: no serial execution: the workflow can be executed multiple time in parallel on different threads (the old behavior, and the default).

Data source: serial execution for each source: Back4 uses a source-specific lock so that the workflow can be executed multiple times in parallel for different data sources, but only serially for the same data source.

Workflow: serial execution always: Back4 uses a global lock so that the workflow cannot be executed multiple times in parallel.