[
https://issues.apache.org/jira/browse/IGNITE-17260?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexander Lapin updated IGNITE-17260:
-------------------------------------
Description:
It's required to explicitly register an intent of starting readOnly
transaction, so following decorator producer is expected in IgniteTransactions
{code:java}
/**
* Decorated {@code IgniteTransactions} instance that will start read-only
transactions.
*
* @return Decorated {@code IgniteTransactions} instance that will start
read-only transactions.
*/
IgniteTransactions readOnly(); {code}
Besides that Transaction interface should be extended with
{code:java}
boolean isReadOnly();{code}
and
{code:java}
HybridTimestamp timestamp();{code}
methods.
And finally three more overloaded methods will be added to the InternalTable
{code:java}
CompletableFuture<BinaryRow> get(
BinaryRowEx keyRow,
@Nullable InternalTransaction tx,
@NotNull ClusterNode recipientNode
);
CompletableFuture<Collection<BinaryRow>> getAll(
Collection<BinaryRowEx> keyRows,
@Nullable InternalTransaction tx,
@NotNull ClusterNode recipientNode
);
Publisher<BinaryRow> scan(
int p,
@Nullable InternalTransaction tx,
@NotNull ClusterNode recipientNode
);
{code}
Please, pay attention, that new parameter @NotNull ClusterNode recipientNode
is added.
was:
It's required to explicitly register an intent of starting readOnly
transaction, so following decorator producer is expected in IgniteTransactions
{code:java}
/**
* Decorated {@code IgniteTransactions} instance that will start read-only
transactions.
*
* @return Decorated {@code IgniteTransactions} instance that will start
read-only transactions.
*/
IgniteTransactions readOnly(); {code}
Besides that Transaction interface should be extended with
{code:java}
boolean isReadOnly();{code}
and
{code:java}
HybridTimestamp timestamp();{code}
methods.
And finally three more overloaded methods will be added to the InternalTable
```
CompletableFuture<BinaryRow> get(
BinaryRowEx keyRow,
@Nullable InternalTransaction tx,
@NotNull ClusterNode recipientNode
);
CompletableFuture<Collection<BinaryRow>> getAll(
Collection<BinaryRowEx> keyRows,
@Nullable InternalTransaction tx,
@NotNull ClusterNode recipientNode
);
Publisher<BinaryRow> scan(
int p,
@Nullable InternalTransaction tx,
@NotNull ClusterNode recipientNode
);
```
Please, pay attention, that new parameter @NotNull ClusterNode recipientNode
is added.
> Enrich IgniteTransactions and Transaction interfaces with RO related methods
> ----------------------------------------------------------------------------
>
> Key: IGNITE-17260
> URL: https://issues.apache.org/jira/browse/IGNITE-17260
> Project: Ignite
> Issue Type: Improvement
> Reporter: Alexander Lapin
> Assignee: Alexander Lapin
> Priority: Major
> Labels: ignite-3, transaction3_ro
>
> It's required to explicitly register an intent of starting readOnly
> transaction, so following decorator producer is expected in IgniteTransactions
> {code:java}
> /**
> * Decorated {@code IgniteTransactions} instance that will start read-only
> transactions.
> *
> * @return Decorated {@code IgniteTransactions} instance that will start
> read-only transactions.
> */
> IgniteTransactions readOnly(); {code}
> Besides that Transaction interface should be extended with
> {code:java}
> boolean isReadOnly();{code}
> and
> {code:java}
> HybridTimestamp timestamp();{code}
> methods.
> And finally three more overloaded methods will be added to the InternalTable
>
> {code:java}
> CompletableFuture<BinaryRow> get(
> BinaryRowEx keyRow,
> @Nullable InternalTransaction tx,
> @NotNull ClusterNode recipientNode
> );
>
> CompletableFuture<Collection<BinaryRow>> getAll(
> Collection<BinaryRowEx> keyRows,
> @Nullable InternalTransaction tx,
> @NotNull ClusterNode recipientNode
> );
>
> Publisher<BinaryRow> scan(
> int p,
> @Nullable InternalTransaction tx,
> @NotNull ClusterNode recipientNode
> );
> {code}
>
> Please, pay attention, that new parameter @NotNull ClusterNode recipientNode
> is added.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)