Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parallel sweeping and index creation inside the engine #7447

Closed
dyemanov opened this issue Jan 11, 2023 · 0 comments
Closed

Parallel sweeping and index creation inside the engine #7447

dyemanov opened this issue Jan 11, 2023 · 0 comments

Comments

@dyemanov
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants