[ 
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 readTimestamp();{code}
methods.

And finally three more overloaded methods will be added to the InternalTable
{code:java}
    CompletableFuture<BinaryRow> get(
            BinaryRowEx keyRow,
            @NotNull HybridTimestamp readTimestamp,
            @NotNull ClusterNode recipientNode
    );
 
    CompletableFuture<Collection<BinaryRow>> getAll(
            Collection<BinaryRowEx> keyRows,
            @NotNull HybridTimestamp readTimestamp,
            @NotNull ClusterNode recipientNode
    );
 
    Publisher<BinaryRow> scan(
            int p,
            @NotNull HybridTimestamp readTimestamp,
            @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
{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.


> 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
>             Fix For: 3.0.0-beta1
>
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> 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 readTimestamp();{code}
> methods.
> And finally three more overloaded methods will be added to the InternalTable
> {code:java}
>     CompletableFuture<BinaryRow> get(
>             BinaryRowEx keyRow,
>             @NotNull HybridTimestamp readTimestamp,
>             @NotNull ClusterNode recipientNode
>     );
>  
>     CompletableFuture<Collection<BinaryRow>> getAll(
>             Collection<BinaryRowEx> keyRows,
>             @NotNull HybridTimestamp readTimestamp,
>             @NotNull ClusterNode recipientNode
>     );
>  
>     Publisher<BinaryRow> scan(
>             int p,
>             @NotNull HybridTimestamp readTimestamp,
>             @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)

Reply via email to