You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vladislav Pyatkov (Jira)" <ji...@apache.org> on 2024/11/05 08:27:00 UTC

[jira] [Assigned] (IGNITE-20322) Add ability to pass an observable timestamp to an implicit transaction

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

Vladislav Pyatkov reassigned IGNITE-20322:
------------------------------------------

    Assignee: Vladislav Pyatkov

> Add ability to pass an observable timestamp to an implicit transaction
> ----------------------------------------------------------------------
>
>                 Key: IGNITE-20322
>                 URL: https://issues.apache.org/jira/browse/IGNITE-20322
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Vladislav Pyatkov
>            Assignee: Vladislav Pyatkov
>            Priority: Major
>              Labels: ignite-3
>
> *Motivation*
> An implicit transaction is a transaction that is started by the table API when a single operation is executed without specifying a transaction and the operation is finished. Currently, implicit transactions are started by the transaction manager API directly (an observable timestamp is tarcked manually). But the common way to start a transaction is to use an instance of IgniteTransactions where the observable will process automatically.
> *Definition of done*
> Implicit transactions should start with `IgniteTransactions` instance.
> *Implementation notes*
> As far as any operation can have this instance of IgniteTransactions (the observeable timestamp is different for clients and the server), each operation in InternalTableI should get the instance through paramentes.
> {code}
> /**
> * Asynchronously gets a row with the same key columns values as given one from the table.
> *
> * @param keyRow Row with key columns set.
> * @param tx The transaction.
> * @param txs Ignite transactions is used to start implicit transaction when {@code tx} is {@code null}
> * @return Future representing pending completion of the operation.
> */
> CompletableFuture<BinaryRow> get(
>   BinaryRowEx keyRow,
>   @Nullable InternalTransaction tx,
>   IgniteTransactions txs
> );
> ....
> {code}



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