-
-
Notifications
You must be signed in to change notification settings - Fork 246
Description
The Firebird engine can now execute some tasks using multiple threads in parallel. Currently parallel execution is implemented for the sweep and the index creation tasks. Parallel execution is supported for both auto- and manual sweep.
To handle same task by multiple threads engine runs additional worker threads and creates internal worker attachments. By default, parallel execution is not enabled. There are two ways to enable parallelism in user attachment:
- set number of parallel workers in DPB using new tag
isc_dpb_parallel_workers
- set default number of parallel workers using new setting ParallelWorkers in firebird.conf
For gfix utility there is new command-line switch -parallel
that allows to set number of parallel workers for the sweep task.
Internal worker attachments are created and managed by the engine itself. Engine maintains per-database pools of worker attachments. Number of items in each of such pool is limited by value of MaxParallelWorkers setting. The pools are created by each Firebird process independently.