Details
-
Task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
3.0.0-alpha2
-
None
Description
We assume two phase locking concurrency control in the first version of tx protocol in Ignite 3.
We need a LockManager implementing this functionality.
If a shared/exclusive lock is acquired in incompatible mode, only "newest" operations are allowed to wait for "oldest", according to ordering based on globally comparable timestamp.
More specifically, suppose a transaction Ti tries to wait for Tj => lock order is [Tj, Ti]. If Ti has lower priority than Tj (i.e., Ti is younger than Tj), then Ti is permitted to wait => [Tj=10, Ti=20]. Otherwise [Tj=20, Ti=10] => Ti is aborted.
Aborted transactions must be restarted preserving it's timestamp.
Attachments
Issue Links
- links to