This is an automated email from the ASF dual-hosted git repository.

vpyatkov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new b129fd5adc IGNITE-20875 Add enlistment consistency token to 
PrimaryReplicaReques… (#2883)
b129fd5adc is described below

commit b129fd5adca7fa97be591ba862c0aae41e54bc9c
Author: Vladislav Pyatkov <[email protected]>
AuthorDate: Wed Nov 29 14:22:43 2023 +0300

    IGNITE-20875 Add enlistment consistency token to PrimaryReplicaReques… 
(#2883)
---
 .../ItPlacementDriverReplicaSideTest.java          |  2 ++
 .../replicator/message/PrimaryReplicaRequest.java  |  7 ++++
 .../message/ReadOnlyDirectReplicaRequest.java      |  9 +----
 .../sql/engine/exec/UpdatableTableImpl.java        |  6 ++--
 .../ignite/distributed/ReplicaUnavailableTest.java |  1 +
 .../request/BuildIndexReplicaRequest.java          |  7 ++--
 .../request/ReadWriteReplicaRequest.java           | 11 ------
 .../replicator/PartitionReplicaListener.java       | 41 ++++++++-------------
 .../distributed/storage/InternalTableImpl.java     | 28 +++++++--------
 .../PartitionReplicaListenerIndexLockingTest.java  |  8 ++---
 .../replication/PartitionReplicaListenerTest.java  | 42 +++++++++++-----------
 .../ignite/internal/tx/impl/TxManagerImpl.java     |  2 +-
 .../tx/message/TxFinishReplicaRequest.java         | 13 ++-----
 .../internal/tx/message/TxRecoveryMessage.java     | 11 +-----
 14 files changed, 73 insertions(+), 115 deletions(-)

diff --git 
a/modules/replicator/src/integrationTest/java/org/apache/ignite/internal/replicator/ItPlacementDriverReplicaSideTest.java
 
b/modules/replicator/src/integrationTest/java/org/apache/ignite/internal/replicator/ItPlacementDriverReplicaSideTest.java
index 72e0dae931..29087c5199 100644
--- 
a/modules/replicator/src/integrationTest/java/org/apache/ignite/internal/replicator/ItPlacementDriverReplicaSideTest.java
+++ 
b/modules/replicator/src/integrationTest/java/org/apache/ignite/internal/replicator/ItPlacementDriverReplicaSideTest.java
@@ -276,6 +276,7 @@ public class ItPlacementDriverReplicaSideTest extends 
IgniteAbstractTest {
         new ReplicaService(clusterService.messagingService(), clock).invoke(
                 
clusterService.topologyService().getByConsistentId(leaderNodeName),
                 TEST_REPLICA_MESSAGES_FACTORY.primaryReplicaTestRequest()
+                        .enlistmentConsistencyToken(1L)
                         .groupId(GROUP_ID)
                         .build()
         );
@@ -335,6 +336,7 @@ public class ItPlacementDriverReplicaSideTest extends 
IgniteAbstractTest {
         new ReplicaService(clusterService.messagingService(), clock).invoke(
                 
clusterService.topologyService().getByConsistentId(leaderNodeName),
                 TEST_REPLICA_MESSAGES_FACTORY.primaryReplicaTestRequest()
+                        .enlistmentConsistencyToken(1L)
                         .groupId(GROUP_ID)
                         .build()
         );
diff --git 
a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/message/PrimaryReplicaRequest.java
 
b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/message/PrimaryReplicaRequest.java
index 9768f0fcae..1cb918f0d2 100644
--- 
a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/message/PrimaryReplicaRequest.java
+++ 
b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/message/PrimaryReplicaRequest.java
@@ -21,4 +21,11 @@ package org.apache.ignite.internal.replicator.message;
  * This is an interface for requests are designed for primary replica.
  */
 public interface PrimaryReplicaRequest extends ReplicaRequest {
+    /**
+     * Gets an enlistment consistency token.
+     * The token is used to check that the lease is still actual while the 
message goes to the replica.
+     *
+     * @return Enlistment consistency token.
+     */
+    Long enlistmentConsistencyToken();
 }
diff --git 
a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/message/ReadOnlyDirectReplicaRequest.java
 
b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/message/ReadOnlyDirectReplicaRequest.java
index 29ca899ee2..72c8ca0222 100644
--- 
a/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/message/ReadOnlyDirectReplicaRequest.java
+++ 
b/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/message/ReadOnlyDirectReplicaRequest.java
@@ -23,12 +23,5 @@ package org.apache.ignite.internal.replicator.message;
  *
  * <p>The requests are used to implement an implicit read-only transaction for 
a single partition.
  */
-public interface ReadOnlyDirectReplicaRequest extends ReplicaRequest {
-    /**
-     * Gets an enlistment consistency token.
-     * The token is used to check that the lease is still actual while the 
message goes to the replica.
-     *
-     * @return Enlistment consistency token.
-     */
-    Long enlistmentConsistencyToken();
+public interface ReadOnlyDirectReplicaRequest extends PrimaryReplicaRequest {
 }
diff --git 
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/UpdatableTableImpl.java
 
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/UpdatableTableImpl.java
index 9272cc1123..5886607b73 100644
--- 
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/UpdatableTableImpl.java
+++ 
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/UpdatableTableImpl.java
@@ -191,7 +191,7 @@ public final class UpdatableTableImpl implements 
UpdatableTable {
                     
.schemaVersion(partToRows.getValue().get(0).schemaVersion())
                     .binaryTuples(binaryRowsToBuffers(partToRows.getValue()))
                     .transactionId(txAttributes.id())
-                    .term(nodeWithTerm.term())
+                    .enlistmentConsistencyToken(nodeWithTerm.term())
                     .requestType(RequestType.RW_UPSERT_ALL)
                     .timestampLong(clock.nowLong())
                     .skipDelayedAck(true)
@@ -267,7 +267,7 @@ public final class UpdatableTableImpl implements 
UpdatableTable {
                     
.schemaVersion(rowBatch.requestedRows.get(0).schemaVersion())
                     .binaryTuples(binaryRowsToBuffers(rowBatch.requestedRows))
                     .transactionId(txAttributes.id())
-                    .term(nodeWithTerm.term())
+                    .enlistmentConsistencyToken(nodeWithTerm.term())
                     .requestType(RequestType.RW_INSERT_ALL)
                     .timestampLong(clock.nowLong())
                     .skipDelayedAck(true)
@@ -336,7 +336,7 @@ public final class UpdatableTableImpl implements 
UpdatableTable {
                     
.schemaVersion(partToRows.getValue().get(0).schemaVersion())
                     .primaryKeys(serializePrimaryKeys(partToRows.getValue()))
                     .transactionId(txAttributes.id())
-                    .term(nodeWithTerm.term())
+                    .enlistmentConsistencyToken(nodeWithTerm.term())
                     .requestType(RequestType.RW_DELETE_ALL)
                     .timestampLong(clock.nowLong())
                     .skipDelayedAck(true)
diff --git 
a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ReplicaUnavailableTest.java
 
b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ReplicaUnavailableTest.java
index 91973f706f..fb426b44f1 100644
--- 
a/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ReplicaUnavailableTest.java
+++ 
b/modules/table/src/integrationTest/java/org/apache/ignite/distributed/ReplicaUnavailableTest.java
@@ -186,6 +186,7 @@ public class ReplicaUnavailableTest extends 
IgniteAbstractTest {
                 .schemaVersion(binaryRow.schemaVersion())
                 .binaryTuple(binaryRow.tupleSlice())
                 .requestType(RequestType.RW_GET)
+                .enlistmentConsistencyToken(1L)
                 .build();
     }
 
diff --git 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replication/request/BuildIndexReplicaRequest.java
 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replication/request/BuildIndexReplicaRequest.java
index 5563c9e064..017b11296a 100644
--- 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replication/request/BuildIndexReplicaRequest.java
+++ 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replication/request/BuildIndexReplicaRequest.java
@@ -20,7 +20,7 @@ package 
org.apache.ignite.internal.table.distributed.replication.request;
 import java.util.List;
 import java.util.UUID;
 import 
org.apache.ignite.internal.replicator.exception.PrimaryReplicaMissException;
-import org.apache.ignite.internal.replicator.message.ReplicaRequest;
+import org.apache.ignite.internal.replicator.message.PrimaryReplicaRequest;
 import org.apache.ignite.internal.table.distributed.TableMessageGroup;
 import org.apache.ignite.network.annotations.Transferable;
 
@@ -30,7 +30,7 @@ import org.apache.ignite.network.annotations.Transferable;
  * <p>It is possible to receive a {@link PrimaryReplicaMissException} in 
response to message processing if the leaseholder changes.</p>
  */
 @Transferable(TableMessageGroup.BUILD_INDEX_REPLICA_REQUEST)
-public interface BuildIndexReplicaRequest extends ReplicaRequest {
+public interface BuildIndexReplicaRequest extends PrimaryReplicaRequest {
     /** Returns index ID. */
     int indexId();
 
@@ -39,7 +39,4 @@ public interface BuildIndexReplicaRequest extends 
ReplicaRequest {
 
     /** Returns {@code true} if this batch is the last one. */
     boolean finish();
-
-    /** Returns an enlistment consistency token is used to check that the 
lease is still actual while the message goes to the replica. */
-    long enlistmentConsistencyToken();
 }
diff --git 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replication/request/ReadWriteReplicaRequest.java
 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replication/request/ReadWriteReplicaRequest.java
index 404869b3c3..02f9ebe807 100644
--- 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replication/request/ReadWriteReplicaRequest.java
+++ 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replication/request/ReadWriteReplicaRequest.java
@@ -20,21 +20,10 @@ package 
org.apache.ignite.internal.table.distributed.replication.request;
 import java.util.UUID;
 import org.apache.ignite.internal.replicator.message.PrimaryReplicaRequest;
 import org.apache.ignite.internal.replicator.message.TimestampAware;
-import org.jetbrains.annotations.Nullable;
 
 /**
  * Read-write replica request.
  */
 public interface ReadWriteReplicaRequest extends PrimaryReplicaRequest, 
TimestampAware {
     UUID transactionId();
-
-    /**
-     * Gets a raft term.
-     * TODO: A temp solution until lease-based engine will be implemented 
(IGNITE-17256, IGNITE-15083, IGNITE-20377)
-     *
-     * @return Raft term.
-     */
-    @Deprecated
-    @Nullable
-    Long term();
 }
diff --git 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replicator/PartitionReplicaListener.java
 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replicator/PartitionReplicaListener.java
index 29e9483ef0..484b4ef97b 100644
--- 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replicator/PartitionReplicaListener.java
+++ 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/replicator/PartitionReplicaListener.java
@@ -91,6 +91,7 @@ import 
org.apache.ignite.internal.replicator.exception.ReplicationMaxRetriesExce
 import 
org.apache.ignite.internal.replicator.exception.ReplicationTimeoutException;
 import 
org.apache.ignite.internal.replicator.exception.UnsupportedReplicaRequestException;
 import org.apache.ignite.internal.replicator.listener.ReplicaListener;
+import org.apache.ignite.internal.replicator.message.PrimaryReplicaRequest;
 import 
org.apache.ignite.internal.replicator.message.ReadOnlyDirectReplicaRequest;
 import org.apache.ignite.internal.replicator.message.ReplicaMessagesFactory;
 import org.apache.ignite.internal.replicator.message.ReplicaRequest;
@@ -3357,46 +3358,32 @@ public class PartitionReplicaListener implements 
ReplicaListener {
      * @return Future. The result is not {@code null} only for {@link 
ReadOnlyReplicaRequest}. If {@code true}, then replica is primary.
      */
     private CompletableFuture<Boolean> ensureReplicaIsPrimary(ReplicaRequest 
request) {
-        Long expectedTerm;
-
-        // TODO: IGNITE-20875 Add enlistment consistency token to 
PrimaryReplicaTestRequest interface.
-        if (request instanceof ReadWriteReplicaRequest) {
-            expectedTerm = ((ReadWriteReplicaRequest) request).term();
-
-            assert expectedTerm != null;
-        } else if (request instanceof TxFinishReplicaRequest) {
-            expectedTerm = ((TxFinishReplicaRequest) request).term();
-
-            assert expectedTerm != null;
-        } else if (request instanceof ReadOnlyDirectReplicaRequest) {
-            expectedTerm = ((ReadOnlyDirectReplicaRequest) 
request).enlistmentConsistencyToken();
-
-            assert expectedTerm != null;
-        } else if (request instanceof BuildIndexReplicaRequest) {
-            expectedTerm = ((BuildIndexReplicaRequest) 
request).enlistmentConsistencyToken();
-        } else if (request instanceof TxRecoveryMessage) {
-            expectedTerm = ((TxRecoveryMessage) 
request).enlistmentConsistencyToken();
-        } else {
-            expectedTerm = null;
-        }
-
         HybridTimestamp now = hybridClock.now();
 
-        if (expectedTerm != null) {
+        if (request instanceof PrimaryReplicaRequest) {
+            Long enlistmentConsistencyToken = ((PrimaryReplicaRequest) 
request).enlistmentConsistencyToken();
+
             return placementDriver.getPrimaryReplica(replicationGroupId, now)
                     .thenCompose(primaryReplicaMeta -> {
                         if (primaryReplicaMeta == null) {
-                            return failedFuture(new 
PrimaryReplicaMissException(localNode.name(), null, expectedTerm, null, null));
+                            return failedFuture(new 
PrimaryReplicaMissException(
+                                    localNode.name(),
+                                    null,
+                                    enlistmentConsistencyToken,
+                                    null,
+                                    null
+                            ));
                         }
 
                         long currentEnlistmentConsistencyToken = 
primaryReplicaMeta.getStartTime().longValue();
 
                         // TODO: 
https://issues.apache.org/jira/browse/IGNITE-20377
-                        if (expectedTerm != currentEnlistmentConsistencyToken 
|| primaryReplicaMeta.getExpirationTime().before(now)) {
+                        if (enlistmentConsistencyToken != 
currentEnlistmentConsistencyToken
+                                || 
primaryReplicaMeta.getExpirationTime().before(now)) {
                             return failedFuture(new 
PrimaryReplicaMissException(
                                     localNode.name(),
                                     primaryReplicaMeta.getLeaseholder(),
-                                    expectedTerm,
+                                    enlistmentConsistencyToken,
                                     currentEnlistmentConsistencyToken,
                                     null
                             ));
diff --git 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/storage/InternalTableImpl.java
 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/storage/InternalTableImpl.java
index e19879c791..92531ebf44 100644
--- 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/storage/InternalTableImpl.java
+++ 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/storage/InternalTableImpl.java
@@ -424,7 +424,7 @@ public class InternalTableImpl implements InternalTable {
                 .columnsToInclude(columnsToInclude)
                 .full(implicit) // Intent for one phase commit.
                 .batchSize(batchSize)
-                .term(term)
+                .enlistmentConsistencyToken(term)
                 
.commitPartitionId(serializeTablePartitionId(tx.commitPartition()))
                 .build();
 
@@ -747,7 +747,7 @@ public class InternalTableImpl implements InternalTable {
                         .primaryKey(keyRow.tupleSlice())
                         
.commitPartitionId(serializeTablePartitionId(txo.commitPartition()))
                         .transactionId(txo.id())
-                        .term(term)
+                        .enlistmentConsistencyToken(term)
                         .requestType(RW_GET)
                         .timestampLong(clock.nowLong())
                         .full(tx == null)
@@ -875,7 +875,7 @@ public class InternalTableImpl implements InternalTable {
                 .schemaVersion(rows.iterator().next().schemaVersion())
                 .primaryKeys(serializeBinaryTuples(rows))
                 .transactionId(tx.id())
-                .term(term)
+                .enlistmentConsistencyToken(term)
                 .requestType(requestType)
                 .timestampLong(clock.nowLong())
                 .full(full)
@@ -941,7 +941,7 @@ public class InternalTableImpl implements InternalTable {
                         .schemaVersion(row.schemaVersion())
                         .binaryTuple(row.tupleSlice())
                         .transactionId(txo.id())
-                        .term(term)
+                        .enlistmentConsistencyToken(term)
                         .requestType(RequestType.RW_UPSERT)
                         .timestampLong(clock.nowLong())
                         .full(tx == null)
@@ -992,7 +992,7 @@ public class InternalTableImpl implements InternalTable {
                         .schemaVersion(row.schemaVersion())
                         .binaryTuple(row.tupleSlice())
                         .transactionId(txo.id())
-                        .term(term)
+                        .enlistmentConsistencyToken(term)
                         .requestType(RequestType.RW_GET_AND_UPSERT)
                         .timestampLong(clock.nowLong())
                         .full(tx == null)
@@ -1013,7 +1013,7 @@ public class InternalTableImpl implements InternalTable {
                         .schemaVersion(row.schemaVersion())
                         .binaryTuple(row.tupleSlice())
                         .transactionId(txo.id())
-                        .term(term)
+                        .enlistmentConsistencyToken(term)
                         .requestType(RequestType.RW_INSERT)
                         .timestampLong(clock.nowLong())
                         .full(tx == null)
@@ -1061,7 +1061,7 @@ public class InternalTableImpl implements InternalTable {
                 .schemaVersion(rows.iterator().next().schemaVersion())
                 .binaryTuples(serializeBinaryTuples(rows))
                 .transactionId(tx.id())
-                .term(term)
+                .enlistmentConsistencyToken(term)
                 .requestType(requestType)
                 .timestampLong(clock.nowLong())
                 .full(full)
@@ -1080,7 +1080,7 @@ public class InternalTableImpl implements InternalTable {
                         .schemaVersion(row.schemaVersion())
                         .binaryTuple(row.tupleSlice())
                         .transactionId(txo.id())
-                        .term(term)
+                        .enlistmentConsistencyToken(term)
                         .requestType(RequestType.RW_REPLACE_IF_EXIST)
                         .timestampLong(clock.nowLong())
                         .full(tx == null)
@@ -1105,7 +1105,7 @@ public class InternalTableImpl implements InternalTable {
                         .oldBinaryTuple(oldRow.tupleSlice())
                         .newBinaryTuple(newRow.tupleSlice())
                         .transactionId(txo.id())
-                        .term(term)
+                        .enlistmentConsistencyToken(term)
                         .requestType(RequestType.RW_REPLACE)
                         .timestampLong(clock.nowLong())
                         .full(tx == null)
@@ -1126,7 +1126,7 @@ public class InternalTableImpl implements InternalTable {
                         .schemaVersion(row.schemaVersion())
                         .binaryTuple(row.tupleSlice())
                         .transactionId(txo.id())
-                        .term(term)
+                        .enlistmentConsistencyToken(term)
                         .requestType(RequestType.RW_GET_AND_REPLACE)
                         .timestampLong(clock.nowLong())
                         .full(tx == null)
@@ -1147,7 +1147,7 @@ public class InternalTableImpl implements InternalTable {
                         .schemaVersion(keyRow.schemaVersion())
                         .primaryKey(keyRow.tupleSlice())
                         .transactionId(txo.id())
-                        .term(term)
+                        .enlistmentConsistencyToken(term)
                         .requestType(RequestType.RW_DELETE)
                         .timestampLong(clock.nowLong())
                         .full(tx == null)
@@ -1168,7 +1168,7 @@ public class InternalTableImpl implements InternalTable {
                         .schemaVersion(oldRow.schemaVersion())
                         .binaryTuple(oldRow.tupleSlice())
                         .transactionId(txo.id())
-                        .term(term)
+                        .enlistmentConsistencyToken(term)
                         .requestType(RequestType.RW_DELETE_EXACT)
                         .timestampLong(clock.nowLong())
                         .full(tx == null)
@@ -1189,7 +1189,7 @@ public class InternalTableImpl implements InternalTable {
                         .schemaVersion(row.schemaVersion())
                         .primaryKey(row.tupleSlice())
                         .transactionId(txo.id())
-                        .term(term)
+                        .enlistmentConsistencyToken(term)
                         .requestType(RequestType.RW_GET_AND_DELETE)
                         .timestampLong(clock.nowLong())
                         .full(tx == null)
@@ -1426,7 +1426,7 @@ public class InternalTableImpl implements InternalTable {
                             .flags(flags)
                             .columnsToInclude(columnsToInclude)
                             .batchSize(batchSize)
-                            .term(recipient.term())
+                            .enlistmentConsistencyToken(recipient.term())
                             .full(false) // Set explicitly.
                             
.commitPartitionId(serializeTablePartitionId(commitPartition))
                             .build();
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerIndexLockingTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerIndexLockingTest.java
index 95be4b2e27..6324fb8aa7 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerIndexLockingTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerIndexLockingTest.java
@@ -297,7 +297,7 @@ public class PartitionReplicaListenerIndexLockingTest 
extends IgniteAbstractTest
             case RW_GET_AND_DELETE:
                 request = 
TABLE_MESSAGES_FACTORY.readWriteSingleRowPkReplicaRequest()
                         .groupId(PARTITION_ID)
-                        .term(1L)
+                        .enlistmentConsistencyToken(1L)
                         .commitPartitionId(tablePartitionId(PARTITION_ID))
                         .transactionId(TRANSACTION_ID)
                         .schemaVersion(testPk.schemaVersion())
@@ -315,7 +315,7 @@ public class PartitionReplicaListenerIndexLockingTest 
extends IgniteAbstractTest
             case RW_GET_AND_UPSERT:
                 request = 
TABLE_MESSAGES_FACTORY.readWriteSingleRowReplicaRequest()
                         .groupId(PARTITION_ID)
-                        .term(1L)
+                        .enlistmentConsistencyToken(1L)
                         .commitPartitionId(tablePartitionId(PARTITION_ID))
                         .transactionId(TRANSACTION_ID)
                         .schemaVersion(testBinaryRow.schemaVersion())
@@ -379,7 +379,7 @@ public class PartitionReplicaListenerIndexLockingTest 
extends IgniteAbstractTest
             case RW_DELETE_ALL:
                 request = 
TABLE_MESSAGES_FACTORY.readWriteMultiRowPkReplicaRequest()
                         .groupId(PARTITION_ID)
-                        .term(1L)
+                        .enlistmentConsistencyToken(1L)
                         .commitPartitionId(tablePartitionId(PARTITION_ID))
                         .transactionId(TRANSACTION_ID)
                         .schemaVersion(pks.iterator().next().schemaVersion())
@@ -394,7 +394,7 @@ public class PartitionReplicaListenerIndexLockingTest 
extends IgniteAbstractTest
             case RW_UPSERT_ALL:
                 request = 
TABLE_MESSAGES_FACTORY.readWriteMultiRowReplicaRequest()
                         .groupId(PARTITION_ID)
-                        .term(1L)
+                        .enlistmentConsistencyToken(1L)
                         .commitPartitionId(tablePartitionId(PARTITION_ID))
                         .transactionId(TRANSACTION_ID)
                         .schemaVersion(rows.iterator().next().schemaVersion())
diff --git 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerTest.java
 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerTest.java
index 500c78ee67..32ac621d8d 100644
--- 
a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerTest.java
+++ 
b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/replication/PartitionReplicaListenerTest.java
@@ -715,7 +715,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                         .groupId(grpId)
                         .transactionId(scanTxId)
                         .timestampLong(clock.nowLong())
-                        .term(1L)
+                        .enlistmentConsistencyToken(1L)
                         .scanId(1L)
                         .indexToUse(sortedIndexId)
                         .batchSize(4)
@@ -732,7 +732,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                 .groupId(grpId)
                 .transactionId(scanTxId)
                 .timestampLong(clock.nowLong())
-                .term(1L)
+                .enlistmentConsistencyToken(1L)
                 .scanId(1L)
                 .indexToUse(sortedIndexId)
                 .batchSize(4)
@@ -749,7 +749,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                 .groupId(grpId)
                 .transactionId(newTxId())
                 .timestampLong(clock.nowLong())
-                .term(1L)
+                .enlistmentConsistencyToken(1L)
                 .scanId(2L)
                 .indexToUse(sortedIndexId)
                 .lowerBoundPrefix(toIndexBound(1))
@@ -769,7 +769,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                 .groupId(grpId)
                 .transactionId(newTxId())
                 .timestampLong(clock.nowLong())
-                .term(1L)
+                .enlistmentConsistencyToken(1L)
                 .scanId(2L)
                 .indexToUse(sortedIndexId)
                 .lowerBoundPrefix(toIndexBound(5))
@@ -787,7 +787,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                 .groupId(grpId)
                 .transactionId(newTxId())
                 .timestampLong(clock.nowLong())
-                .term(1L)
+                .enlistmentConsistencyToken(1L)
                 .scanId(2L)
                 .indexToUse(sortedIndexId)
                 .exactKey(toIndexKey(0))
@@ -1110,7 +1110,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                         .requestType(requestType)
                         .schemaVersion(binaryRow.schemaVersion())
                         .binaryTuple(binaryRow.tupleSlice())
-                        .term(1L)
+                        .enlistmentConsistencyToken(1L)
                         .commitPartitionId(commitPartitionId())
                         .full(full)
                         .build(),
@@ -1129,7 +1129,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                         .requestType(requestType)
                         .schemaVersion(binaryRow.schemaVersion())
                         .primaryKey(binaryRow.tupleSlice())
-                        .term(1L)
+                        .enlistmentConsistencyToken(1L)
                         .commitPartitionId(commitPartitionId())
                         .full(full)
                         .build(),
@@ -1155,7 +1155,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                         .requestType(requestType)
                         
.schemaVersion(binaryRows.iterator().next().schemaVersion())
                         .binaryTuples(binaryRowsToBuffers(binaryRows))
-                        .term(1L)
+                        .enlistmentConsistencyToken(1L)
                         .commitPartitionId(commitPartitionId())
                         .full(full)
                         .build(),
@@ -1178,7 +1178,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                         .requestType(requestType)
                         
.schemaVersion(binaryRows.iterator().next().schemaVersion())
                         .primaryKeys(binaryRowsToBuffers(binaryRows))
-                        .term(1L)
+                        .enlistmentConsistencyToken(1L)
                         .commitPartitionId(commitPartitionId())
                         .full(full)
                         .build(),
@@ -1202,7 +1202,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                             .requestType(RequestType.RW_INSERT)
                             .schemaVersion(binaryRow.schemaVersion())
                             .binaryTuple(binaryRow.tupleSlice())
-                            .term(1L)
+                            .enlistmentConsistencyToken(1L)
                             .commitPartitionId(commitPartitionId())
                             .build();
                 },
@@ -1230,7 +1230,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                             .requestType(RequestType.RW_UPSERT_ALL)
                             .schemaVersion(binaryRow0.schemaVersion())
                             .binaryTuples(asList(binaryRow0.tupleSlice(), 
binaryRow1.tupleSlice()))
-                            .term(1L)
+                            .enlistmentConsistencyToken(1L)
                             .commitPartitionId(commitPartitionId())
                             .build();
                 },
@@ -1446,7 +1446,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                 .txId(txId)
                 .groups(Set.of(grpId))
                 .commit(false)
-                .term(1L)
+                .enlistmentConsistencyToken(1L)
                 .build();
 
         return partitionReplicaListener.invoke(commitRequest, localNode.id());
@@ -1511,7 +1511,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                 .groups(Set.of(grpId))
                 .commit(true)
                 .commitTimestampLong(hybridTimestampToLong(commitTimestamp))
-                .term(1L)
+                .enlistmentConsistencyToken(1L)
                 .build();
 
         return partitionReplicaListener.invoke(commitRequest, localNode.id());
@@ -1691,7 +1691,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                         .schemaVersion(oldRow.schemaVersion())
                         .oldBinaryTuple(oldRow.tupleSlice())
                         .newBinaryTuple(newRow.tupleSlice())
-                        .term(1L)
+                        .enlistmentConsistencyToken(1L)
                         .commitPartitionId(commitPartitionId())
                         .full(full)
                         .build(),
@@ -1708,7 +1708,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                                 .transactionId(targetTxId)
                                 .indexToUse(sortedIndexStorage.id())
                                 
.exactKey(toIndexKey(FUTURE_SCHEMA_ROW_INDEXED_VALUE))
-                                .term(1L)
+                                .enlistmentConsistencyToken(1L)
                                 .scanId(1)
                                 .batchSize(100)
                                 .commitPartitionId(commitPartitionId())
@@ -1726,7 +1726,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                                 .groupId(grpId)
                                 .transactionId(targetTxId)
                                 .indexToUse(sortedIndexStorage.id())
-                                .term(1L)
+                                .enlistmentConsistencyToken(1L)
                                 .scanId(1)
                                 .batchSize(100)
                                 .commitPartitionId(commitPartitionId())
@@ -1748,7 +1748,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                 
TABLE_MESSAGES_FACTORY.readWriteScanRetrieveBatchReplicaRequest()
                         .groupId(grpId)
                         .transactionId(targetTxId)
-                        .term(1L)
+                        .enlistmentConsistencyToken(1L)
                         .scanId(1)
                         .batchSize(100)
                         .full(false)
@@ -1763,7 +1763,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                 TABLE_MESSAGES_FACTORY.readWriteScanCloseReplicaRequest()
                         .groupId(grpId)
                         .transactionId(targetTxId)
-                        .term(1L)
+                        .enlistmentConsistencyToken(1L)
                         .scanId(1)
                         .build(),
                 localNode.id()
@@ -2230,7 +2230,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                         .groupId(commitPartitionId)
                         .groups(groups)
                         .txId(txId)
-                        .term(1L)
+                        .enlistmentConsistencyToken(1L)
                         .commit(true)
                         .commitTimestampLong(clock.nowLong())
                         .build(),
@@ -2372,7 +2372,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                         .transactionId(txId)
                         .schemaVersion(row.schemaVersion())
                         .binaryTuple(row.tupleSlice())
-                        .term(1L)
+                        .enlistmentConsistencyToken(1L)
                         .commitPartitionId(commitPartitionId())
                         .build(),
                 localNode.id()
@@ -2386,7 +2386,7 @@ public class PartitionReplicaListenerTest extends 
IgniteAbstractTest {
                         .transactionId(txId)
                         .schemaVersion(row.schemaVersion())
                         .primaryKey(row.tupleSlice())
-                        .term(1L)
+                        .enlistmentConsistencyToken(1L)
                         .commitPartitionId(commitPartitionId())
                         .build(),
                 localNode.id()
diff --git 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TxManagerImpl.java
 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TxManagerImpl.java
index fa2745e873..cacbb698c7 100644
--- 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TxManagerImpl.java
+++ 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/impl/TxManagerImpl.java
@@ -481,7 +481,7 @@ public class TxManagerImpl implements TxManager, 
NetworkMessageHandler {
                 // In case of verification future failure transaction will be 
rolled back.
                 .commit(commit)
                 .commitTimestampLong(hybridTimestampToLong(commitTimestamp))
-                .term(term)
+                .enlistmentConsistencyToken(term)
                 .build();
 
         return replicaService.invoke(primaryConsistentId, req)
diff --git 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/message/TxFinishReplicaRequest.java
 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/message/TxFinishReplicaRequest.java
index b719eb1d95..2601f2f2f5 100644
--- 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/message/TxFinishReplicaRequest.java
+++ 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/message/TxFinishReplicaRequest.java
@@ -23,7 +23,7 @@ import java.util.Collection;
 import java.util.UUID;
 import org.apache.ignite.internal.hlc.HybridTimestamp;
 import org.apache.ignite.internal.replicator.ReplicationGroupId;
-import org.apache.ignite.internal.replicator.message.ReplicaRequest;
+import org.apache.ignite.internal.replicator.message.PrimaryReplicaRequest;
 import org.apache.ignite.internal.replicator.message.TimestampAware;
 import org.apache.ignite.network.annotations.Marshallable;
 import org.apache.ignite.network.annotations.Transferable;
@@ -39,7 +39,7 @@ import org.jetbrains.annotations.Nullable;
  *  </ol>
  */
 @Transferable(value = TxMessageGroup.TX_FINISH_REQUEST)
-public interface TxFinishReplicaRequest extends ReplicaRequest, TimestampAware 
{
+public interface TxFinishReplicaRequest extends PrimaryReplicaRequest, 
TimestampAware {
     /**
      * Returns transaction Id.
      *
@@ -73,13 +73,4 @@ public interface TxFinishReplicaRequest extends 
ReplicaRequest, TimestampAware {
      */
     @Marshallable
     Collection<ReplicationGroupId> groups();
-
-    /**
-     * Gets a raft term.
-     * TODO: A temp solution until lease-based engine will be implemented 
(IGNITE-17256, IGNITE-15083)
-     *
-     * @return Raft term.
-     */
-    @Deprecated
-    Long term();
 }
diff --git 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/message/TxRecoveryMessage.java
 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/message/TxRecoveryMessage.java
index 6f36fd8d61..a3112bba86 100644
--- 
a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/message/TxRecoveryMessage.java
+++ 
b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/message/TxRecoveryMessage.java
@@ -19,26 +19,17 @@ package org.apache.ignite.internal.tx.message;
 
 import java.util.UUID;
 import org.apache.ignite.internal.replicator.message.PrimaryReplicaRequest;
-import org.apache.ignite.internal.replicator.message.ReplicaRequest;
 import org.apache.ignite.network.annotations.Transferable;
 
 /**
  * Transaction recovery message.
  */
 @Transferable(TxMessageGroup.TX_RECOVERY_MSG)
-public interface TxRecoveryMessage extends PrimaryReplicaRequest, 
ReplicaRequest {
+public interface TxRecoveryMessage extends PrimaryReplicaRequest {
     /**
      * Gets a transaction id to resolve.
      *
      * @return Transaction id.
      */
     UUID txId();
-
-    /**
-     * Gets an enlistment consistency token.
-     * The token is used to check that the lease is still actual while the 
message goes to the replica.
-     *
-     * @return Enlistment consistency token.
-     */
-    long enlistmentConsistencyToken();
 }


Reply via email to