[ 
https://issues.apache.org/jira/browse/IGNITE-5714?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16858646#comment-16858646
 ] 

Aleksey Plekhanov commented on IGNITE-5714:
-------------------------------------------

[~gvvinblade],

But explicit lock version different each time lock is used, there is no thread 
local for this value (AFAIK). It's incremented here: 
GridDhtColocatedLockFuture.java:229. Did I miss something?

Looks like I've misused {{txFinishSync}} object. But there are still a couple 
of issues when {{txFinishSync}} is applicable:
 * For rolling update case (not all nodes in the cluster can support locking by 
xid, some of them can still lock by {{threadId}})
 * For implicit transactions

> Implementation of suspend/resume for pessimistic transactions
> -------------------------------------------------------------
>
>                 Key: IGNITE-5714
>                 URL: https://issues.apache.org/jira/browse/IGNITE-5714
>             Project: Ignite
>          Issue Type: Sub-task
>          Components: general
>            Reporter: Alexey Kuznetsov
>            Assignee: Aleksey Plekhanov
>            Priority: Major
>              Labels: iep-34
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Support transaction suspend()\resume() operations for pessimistic 
> transactions. Resume can be called in another thread.
>    _+But there is a problem+_: Imagine, we started pessimistic transaction in 
> thread T1 and then perform put operation, which leads to sending 
> GridDistributedLockRequest to another node. Lock request contains thread id 
> of the transaction. Then we call suspend, resume in another thread and we 
> also must send messages to other nodes to change thread id. 
> It seems complicated task.It’s better to get rid of sending thread id to the 
> nodes.
> We can use transaction xid on other nodes instead of thread id. Xid is sent 
> to nodes in GridDistributedLockRequest#nearXidVer
>    _+Proposed solution+_ : On remote nodes instead of thread id of near 
> transaction GridDistributedLockRequest#threadId use its xid 
> GridDistributedLockRequest#nearXidVer.
> Remove usages of near transaction's thread id on remote nodes.



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

Reply via email to