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

Pavel Pereslegin updated IGNITE-23680:
--------------------------------------
    Description: 
In order to implement the SQL command
{code:sql}
KILL TRANSACTION txId
{code}

we need to add a new method to TxManager that will be able to rollback any 
locally started (read-only and read-write) transaction by tx ID.

For example
{code:java}
// returns false in case transaction not exists / was started on another node / 
already completed (or aborted)
CompletableFuture<Boolean> cancelLocalAsync(UUID txId);
{code}

*NOTE:* It is assumed that the method will be called on all cluster nodes (via 
a broadcast message). However, if it is possible to immediately and more 
effectively implement a method for "global" transaction rollback in the entire 
cluster, then it's better to implement it this way, for example:
{code:java}
// returns false in case transaction not exists in cluster / already completed 
(or aborted)
CompletableFuture<Boolean> cancelAsync(UUID txId);
{code}

  was:
In order to implement the SQL command
{code:sql}
KILL TRANSACTION txId
{code}

we need to add a new method to TxManager that will be able to rollback any 
locally started (read-only and read-write) transaction by tx ID.

For example
{code:java}
// returns false in case transaction not exists / was started on another node / 
already completed (or aborted)
boolean cancelLocal(UUID txId);
{code}

*NOTE:* It is assumed that the method will be called on all cluster nodes (via 
a broadcast message). However, if it is possible to immediately and more 
effectively implement a method for "global" transaction rollback in the entire 
cluster, then it's better to implement it this way, for example:
{code:java}
// returns false in case transaction not exists in cluster / already completed 
(or aborted)
boolean cancel(UUID txId);
{code}


> Add the ability to rollback any transaction by ID
> -------------------------------------------------
>
>                 Key: IGNITE-23680
>                 URL: https://issues.apache.org/jira/browse/IGNITE-23680
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Pavel Pereslegin
>            Priority: Major
>              Labels: ignite-3, transactions
>
> In order to implement the SQL command
> {code:sql}
> KILL TRANSACTION txId
> {code}
> we need to add a new method to TxManager that will be able to rollback any 
> locally started (read-only and read-write) transaction by tx ID.
> For example
> {code:java}
> // returns false in case transaction not exists / was started on another node 
> / already completed (or aborted)
> CompletableFuture<Boolean> cancelLocalAsync(UUID txId);
> {code}
> *NOTE:* It is assumed that the method will be called on all cluster nodes 
> (via a broadcast message). However, if it is possible to immediately and more 
> effectively implement a method for "global" transaction rollback in the 
> entire cluster, then it's better to implement it this way, for example:
> {code:java}
> // returns false in case transaction not exists in cluster / already 
> completed (or aborted)
> CompletableFuture<Boolean> cancelAsync(UUID txId);
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to