Skip to content

Commit 05747b7

Browse files
authored
introduce snapshot_ro isolation level (#11085) (#11252)
1 parent 23208c8 commit 05747b7

File tree

4 files changed

+5
-4
lines changed

4 files changed

+5
-4
lines changed

ydb/core/kqp/common/kqp_tx.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,8 @@ bool NeedSnapshot(const TKqpTransactionContext& txCtx, const NYql::TKikimrConfig
157157
{
158158
Y_UNUSED(config);
159159

160-
if (*txCtx.EffectiveIsolationLevel != NKikimrKqp::ISOLATION_LEVEL_SERIALIZABLE)
160+
if (*txCtx.EffectiveIsolationLevel != NKikimrKqp::ISOLATION_LEVEL_SERIALIZABLE &&
161+
*txCtx.EffectiveIsolationLevel != NKikimrKqp::ISOLATION_LEVEL_SNAPSHOT_RO)
161162
return false;
162163

163164
if (txCtx.GetSnapshot().IsValid())

ydb/core/kqp/common/kqp_tx.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,8 +256,7 @@ class TKqpTransactionContext : public NYql::TKikimrTransactionContextBase {
256256
break;
257257

258258
case Ydb::Table::TransactionSettings::kSnapshotReadOnly:
259-
// TODO: (KIKIMR-3374) Use separate isolation mode to avoid optimistic locks.
260-
EffectiveIsolationLevel = NKikimrKqp::ISOLATION_LEVEL_SERIALIZABLE;
259+
EffectiveIsolationLevel = NKikimrKqp::ISOLATION_LEVEL_SNAPSHOT_RO;
261260
Readonly = true;
262261
break;
263262

ydb/core/kqp/executer_actor/kqp_planner.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,8 +187,8 @@ std::unique_ptr<TEvKqpNode::TEvStartKqpTasksRequest> TKqpPlanner::SerializeReque
187187
request.SetTxId(TxId);
188188
if (LockTxId) {
189189
request.SetLockTxId(*LockTxId);
190+
request.SetLockNodeId(LockNodeId);
190191
}
191-
request.SetLockNodeId(LockNodeId);
192192
ActorIdToProto(ExecuterId, request.MutableExecuterActorId());
193193

194194
if (Deadline) {

ydb/core/protos/kqp.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ enum EIsolationLevel {
6464
ISOLATION_LEVEL_READ_COMMITTED = 2;
6565
ISOLATION_LEVEL_READ_UNCOMMITTED = 3;
6666
ISOLATION_LEVEL_READ_STALE = 4;
67+
ISOLATION_LEVEL_SNAPSHOT_RO = 5;
6768
};
6869

6970
enum EQueryReplyFlags {

0 commit comments

Comments
 (0)