ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksey Plekhanov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-5714) Implementation of suspend/resume for pessimistic transactions
Date Fri, 07 Jun 2019 13:32:00 GMT

    [ 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:


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

View raw message