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