Issue Details (XML | Word | Printable)

Key: CORE-4965
Type: Improvement Improvement
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Dmitry Yemanov
Reporter: Dmitry Yemanov
Votes: 0
Watchers: 0

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

Extend the transaction ID space beyond 2^32 transactions

Created: 19/Oct/15 01:19 PM   Updated: 21/Oct/15 06:07 PM
Component/s: Engine
Affects Version/s: None
Fix Version/s: 3.0 RC1

Issue Links:

QA Status: Cannot be tested
Test Details:
Database with Tx counters about 2.8*10^14 can not be prepared at reasonable time.
Direct updating of .fdb file (its TIP page) can lead to server crash after attempting to connect - so this ticket can not be tested by using fbtest.

 Description  « Hide
Historically, transaction ID space was limited by 2^31 transactions (started since the database creation time). After that point, the database becomes unavailable until backup/restore is performed, which resets the transaction ID back to zero. Initial Firebird 3.0 version increased the transaction ID space to 2^32 transactions which doubles the database uptime without backup/restore.

This improvement request is about shifting that limit even further.

Firebird 3.0 RC1 introduces 48-bit internal transaction IDs that are publicly (via API and MON$ tables) represented as 64-bit numbers. This makes the new limit roughly equal to 2.8*10^14 transactions, later it could be extended up to the 2^63 limit. The implemented solution has no additional storage overhead until the transaction counters grow beyond the 2^32 boundary.

While being there, attachment IDs and statement IDs were changed to 64-bit numbers (both internally and externally).

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