ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vladimir Ozerov (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-7807) SQL TX: Store lock info inside tuples
Date Mon, 26 Feb 2018 08:18:00 GMT
Vladimir Ozerov created IGNITE-7807:

             Summary: SQL TX: Store lock info inside tuples
                 Key: IGNITE-7807
                 URL: https://issues.apache.org/jira/browse/IGNITE-7807
             Project: Ignite
          Issue Type: Task
          Components: sql
            Reporter: Vladimir Ozerov

We need to store lock info inside tuples. Otherwise, touching a lot of entries would lead
to OOME. Also we should rework our locking logic - instead of trying to enlist ourselves in
every entry, we should stop on the very first locked entry and wait for it's release.

Suggested fix: 
1) Check for {{lock_id}} field of an entry
2) If it is empty, CAS own XID
3) If it is not empty, check fo TX LOG to see if transaction is still active; if not - CAS
4) If failed to install own version - stop locking and wait for release
5) When transaction commits, no locks are released explicilty. Instead, it is responsibility
of the next locker to check TX LOG and undesrantnad whether entry could be locked or not
6) When lock is acquired, create new version of an entry with lock info

This message was sent by Atlassian JIRA

View raw message