[jira] [Updated] (IGNITE-7807) SQL TX: Store lock info inside tuples

2018-08-16 Thread Vladimir Ozerov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-7807?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ozerov updated IGNITE-7807:

Component/s: mvcc

> 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: mvcc, sql
>Reporter: Vladimir Ozerov
>Assignee: Igor Seliverstov
>Priority: Major
> Fix For: 2.7
>
>
> 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 itself
> 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
(v7.6.3#76005)


[jira] [Updated] (IGNITE-7807) SQL TX: Store lock info inside tuples

2018-06-26 Thread Dmitriy Pavlov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-7807?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dmitriy Pavlov updated IGNITE-7807:
---
Fix Version/s: (was: 2.6)
   2.7

> 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
>Assignee: Igor Seliverstov
>Priority: Major
> Fix For: 2.7
>
>
> 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 itself
> 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
(v7.6.3#76005)


[jira] [Updated] (IGNITE-7807) SQL TX: Store lock info inside tuples

2018-04-06 Thread Igor Seliverstov (JIRA)

 [ 
https://issues.apache.org/jira/browse/IGNITE-7807?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Igor Seliverstov updated IGNITE-7807:
-
Fix Version/s: (was: 2.5)
   2.6

> 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
>Assignee: Igor Seliverstov
>Priority: Major
> Fix For: 2.6
>
>
> 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 itself
> 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
(v7.6.3#76005)


[jira] [Updated] (IGNITE-7807) SQL TX: Store lock info inside tuples

2018-03-26 Thread Vladimir Ozerov (JIRA)

 [ 
https://issues.apache.org/jira/browse/IGNITE-7807?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ozerov updated IGNITE-7807:

Fix Version/s: 2.5

> 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
>Assignee: Igor Seliverstov
>Priority: Major
> Fix For: 2.5
>
>
> 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 itself
> 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
(v7.6.3#76005)