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

Dmitriy Govorukhin updated IGNITE-11786:
----------------------------------------
    Description: 
The new structure should work as a stack. 
When thread obtains lock we push pageId (+meta) on the top of the stack when 
thread release lock we pop pageId from the stack. Their cases when thread may 
unlock page not from current thread frame (some split pages in B-tree), from 
previous, in this case, we should go down to stack and find this page and 
update meta.

{code}
public interface LockStack {
    void push(int cacheId, long pageId, int flags);

    void pop(int cacheId, long pageId, int flags);

    int R = 1;
    int W = 2;
}
{code}

  was:
The new structure should work as a stack. 
When thread obtains lock we push pageId (+meta) on the top of the stack when 
thread release lock we pop pageId from the stack. Their cases when thread may 
unlock page not from current thread frame (some split pages in B-tree), from 
previous, in this case, we should go down to stack and find this page and 
update meta.

{code}
{code}


> Implement thread-local stack for trucking page locks
> ----------------------------------------------------
>
>                 Key: IGNITE-11786
>                 URL: https://issues.apache.org/jira/browse/IGNITE-11786
>             Project: Ignite
>          Issue Type: Sub-task
>            Reporter: Dmitriy Govorukhin
>            Priority: Major
>             Fix For: 2.8
>
>
> The new structure should work as a stack. 
> When thread obtains lock we push pageId (+meta) on the top of the stack when 
> thread release lock we pop pageId from the stack. Their cases when thread may 
> unlock page not from current thread frame (some split pages in B-tree), from 
> previous, in this case, we should go down to stack and find this page and 
> update meta.
> {code}
> public interface LockStack {
>     void push(int cacheId, long pageId, int flags);
>     void pop(int cacheId, long pageId, int flags);
>     int R = 1;
>     int W = 2;
> }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to