Issue Details (XML | Word | Printable)

Key: CORE-4431
Type: Improvement Improvement
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Vlad Khorsun
Reporter: Vlad Khorsun
Votes: 0
Watchers: 1

If you were logged in you would be able to see more operations.
Firebird Core

Reduce contention for allocation table lock while database is in stalled physical backup state

Created: 15/May/14 09:30 PM   Updated: 23/Sep/15 12:18 PM
Component/s: Engine
Affects Version/s: 2.1.5, 2.5.2, 2.1.5 Update 1, 2.5.2 Update 1, 3.0 Alpha 1, 3.0 Alpha 2
Fix Version/s: 2.5.3, 3.0 Beta 1

Environment: ClassicServer and SuperClassic modes

QA Status: Cannot be tested

 Description  « Hide
In Classic modes (CS\SC) every attachment have its own private cache of allocation table contents.
Access to allocation table is protected by common allocation table lock (alloc lock).
Currently, when attachment needs to look for a page number at allocation table, it acquires alloc lock in SH mode.
But it is not necessary if corresponding part of allocation table is already cached by attachement as allocation
table entries is never changed, it is only appended.
More, a lot of unnecessary requests for a SH lock not allows writers to proceed as quick as it can.

The improvement is to introduce additional local (per-attachment) read-write lock to protect access to the
attachment's private cache of the allocation table. It allows to significantly lower contention on global lock.

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
There are no subversion log entries for this issue yet.