Skip to content

Conversation

@kirillvasilenko
Copy link
Collaborator

@kirillvasilenko kirillvasilenko commented Nov 26, 2025

Milestone 3 here #12972

@github-actions
Copy link

github-actions bot commented Nov 26, 2025

2025-11-26 11:56:29 UTC Pre-commit check linux-x86_64-release-asan for e26b828 has started.
2025-11-26 11:57:12 UTC Artifacts will be uploaded here
2025-11-26 11:59:11 UTC ya make is running...
🟡 2025-11-26 13:11:33 UTC Some tests failed, follow the links below. This fail is not in blocking policy yet

Ya make output | Test bloat

TESTS PASSED ERRORS FAILED SKIPPED MUTED?
11924 11854 0 54 7 9

🟢 2025-11-26 13:11:42 UTC Build successful.
🟢 2025-11-26 13:12:12 UTC ydbd size 3.8 GiB changed* by -736 Bytes, which is <= 0 Bytes vs main: OK

ydbd size dash main: a5e4396 merge: e26b828 diff diff %
ydbd size 4 111 743 728 Bytes 4 111 742 992 Bytes -736 Bytes -0.000%
ydbd stripped size 1 528 202 992 Bytes 1 528 203 184 Bytes +192 Bytes +0.000%

*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation

@github-actions
Copy link

github-actions bot commented Nov 26, 2025

🟢 2025-11-26 14:23:25 UTC The validation of the Pull Request description is successful.

@github-actions
Copy link

github-actions bot commented Nov 26, 2025

2025-11-26 11:57:58 UTC Pre-commit check linux-x86_64-relwithdebinfo for e26b828 has started.
2025-11-26 11:58:15 UTC Artifacts will be uploaded here
2025-11-26 12:00:26 UTC ya make is running...
🟡 2025-11-26 13:43:03 UTC Some tests failed, follow the links below. Going to retry failed tests...

Ya make output | Test bloat

TESTS PASSED ERRORS FAILED SKIPPED MUTED?
39532 36650 0 1 2853 28

2025-11-26 13:43:15 UTC ya make is running... (failed tests rerun, try 2)
🟢 2025-11-26 13:53:42 UTC Tests successful.

Ya make output | Test bloat | Test bloat

TESTS PASSED ERRORS FAILED SKIPPED MUTED?
76 (only retried tests) 61 0 0 0 15

🟢 2025-11-26 13:53:49 UTC Build successful.
🟢 2025-11-26 13:54:12 UTC ydbd size 2.3 GiB changed* by -552 Bytes, which is <= 0 Bytes vs main: OK

ydbd size dash main: a5e4396 merge: e26b828 diff diff %
ydbd size 2 456 362 792 Bytes 2 456 362 240 Bytes -552 Bytes -0.000%
ydbd stripped size 523 441 336 Bytes 523 441 592 Bytes +256 Bytes +0.000%

*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation

@kirillvasilenko kirillvasilenko marked this pull request as ready for review November 26, 2025 14:22
@kirillvasilenko kirillvasilenko requested review from a team as code owners November 26, 2025 14:22
Copilot finished reviewing on behalf of kirillvasilenko November 26, 2025 14:25
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements support for write conflict detection under snapshot isolation for column shards. The implementation threads a new LockMode parameter through the write pipeline to distinguish between optimistic and snapshot isolation modes, and adds a readOnlyConflicts flag to control whether scans should check for write conflicts.

  • Threads LockMode parameter from write requests through write tasks, writing context, and scan operations
  • Adds IsSnapshotIsolated() method to identify snapshot isolation transactions
  • Implements readOnlyConflicts flag to control conflict detection behavior in scans
  • Refactors batch builder logic to handle snapshot-isolated writes with conflict checking

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
write_queue.h/cpp Adds LockMode field to TWriteTask and passes it to writing context
context.h Adds LockMode field and IsSnapshotIsolated() method to TWritingContext
columnshard__write.cpp Extracts LockMode from write request with OPTIMISTIC default
restore.h/cpp Adds ReadOnlyConflicts flag to modification restore task
builder.cpp Refactors logic with handleReplace lambda to support snapshot-isolated writes
tx_scan.cpp Adds false parameter for readOnlyConflicts in external scans
tx_internal_scan.cpp Passes ReadOnlyConflicts flag from request to scan setup
description.h Implements conflict detection logic based on readOnlyConflicts flag
columnshard.h Adds ReadOnlyConflicts field to TEvInternalScan
kqp_snapshot_isolation_ut.cpp Adds comprehensive tests for different write operation types

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions
Copy link

github-actions bot commented Nov 26, 2025

2025-11-26 14:37:04 UTC Pre-commit check linux-x86_64-relwithdebinfo for 755718b has started.
2025-11-26 14:37:22 UTC Artifacts will be uploaded here
2025-11-26 14:39:34 UTC ya make is running...
🟡 2025-11-26 16:28:27 UTC Some tests failed, follow the links below. Going to retry failed tests...

Ya make output | Test bloat

TESTS PASSED ERRORS FAILED SKIPPED MUTED?
39536 36624 0 52 2837 23

2025-11-26 16:28:41 UTC ya make is running... (failed tests rerun, try 2)
🟡 2025-11-26 16:47:03 UTC Some tests failed, follow the links below. Going to retry failed tests...

Ya make output | Test bloat | Test bloat

TESTS PASSED ERRORS FAILED SKIPPED MUTED?
147 (only retried tests) 82 0 50 0 15

2025-11-26 16:47:11 UTC ya make is running... (failed tests rerun, try 3)
🟢 2025-11-26 16:51:36 UTC ydbd size 2.3 GiB changed* by -776 Bytes, which is <= 0 Bytes vs main: OK

ydbd size dash main: d317be8 merge: 755718b diff diff %
ydbd size 2 456 472 400 Bytes 2 456 471 624 Bytes -776 Bytes -0.000%
ydbd stripped size 523 448 384 Bytes 523 448 512 Bytes +128 Bytes +0.000%

*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation
2025-11-26 16:51:38 UTC Check cancelled

@github-actions
Copy link

github-actions bot commented Nov 26, 2025

2025-11-26 14:37:48 UTC Pre-commit check linux-x86_64-release-asan for 755718b has started.
2025-11-26 14:38:05 UTC Artifacts will be uploaded here
2025-11-26 14:40:15 UTC ya make is running...
🟡 2025-11-26 15:58:48 UTC Some tests failed, follow the links below. This fail is not in blocking policy yet

Ya make output | Test bloat

TESTS PASSED ERRORS FAILED SKIPPED MUTED?
11928 11791 0 122 7 8

🟢 2025-11-26 15:58:56 UTC Build successful.
🟢 2025-11-26 15:59:26 UTC ydbd size 3.8 GiB changed* by -4.8 KiB, which is <= 0 Bytes vs main: OK

ydbd size dash main: d317be8 merge: 755718b diff diff %
ydbd size 4 111 923 912 Bytes 4 111 919 032 Bytes -4.8 KiB -0.000%
ydbd stripped size 1 528 251 056 Bytes 1 528 247 152 Bytes -3.8 KiB -0.000%

*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation

@github-actions
Copy link

github-actions bot commented Nov 26, 2025

2025-11-26 16:53:02 UTC Pre-commit check linux-x86_64-relwithdebinfo for bac6c04 has started.
2025-11-26 16:53:19 UTC Artifacts will be uploaded here
2025-11-26 16:55:26 UTC ya make is running...
🟡 2025-11-26 18:35:42 UTC Some tests failed, follow the links below. Going to retry failed tests...

Ya make output | Test bloat

TESTS PASSED ERRORS FAILED SKIPPED MUTED?
39546 36674 0 9 2837 26

2025-11-26 18:35:57 UTC ya make is running... (failed tests rerun, try 2)
🟢 2025-11-26 18:45:57 UTC Tests successful.

Ya make output | Test bloat | Test bloat

TESTS PASSED ERRORS FAILED SKIPPED MUTED?
58 (only retried tests) 45 0 0 0 13

🟢 2025-11-26 18:46:04 UTC Build successful.
🟢 2025-11-26 18:46:27 UTC ydbd size 2.3 GiB changed* by -768 Bytes, which is <= 0 Bytes vs main: OK

ydbd size dash main: 37ffbd0 merge: bac6c04 diff diff %
ydbd size 2 456 394 840 Bytes 2 456 394 072 Bytes -768 Bytes -0.000%
ydbd stripped size 523 434 112 Bytes 523 434 240 Bytes +128 Bytes +0.000%

*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation

@github-actions
Copy link

github-actions bot commented Nov 26, 2025

2025-11-26 16:53:03 UTC Pre-commit check linux-x86_64-release-asan for bac6c04 has started.
2025-11-26 16:53:19 UTC Artifacts will be uploaded here
2025-11-26 16:55:23 UTC ya make is running...
🟡 2025-11-26 18:08:32 UTC Some tests failed, follow the links below. This fail is not in blocking policy yet

Ya make output | Test bloat

TESTS PASSED ERRORS FAILED SKIPPED MUTED?
11938 11875 0 46 10 7

🟢 2025-11-26 18:08:39 UTC Build successful.
🟢 2025-11-26 18:09:02 UTC ydbd size 3.8 GiB changed* by -1.2 KiB, which is <= 0 Bytes vs main: OK

ydbd size dash main: 37ffbd0 merge: bac6c04 diff diff %
ydbd size 4 111 666 864 Bytes 4 111 665 680 Bytes -1.2 KiB -0.000%
ydbd stripped size 1 528 107 248 Bytes 1 528 107 248 Bytes 0 Bytes 0.000%

*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation

Copy link
Collaborator

@nikvas0 nikvas0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kqp ok

@kirillvasilenko kirillvasilenko merged commit e715066 into ydb-platform:main Nov 27, 2025
9 checks passed
kirillvasilenko added a commit to kirillvasilenko/ydb that referenced this pull request Nov 28, 2025
…platform#29598)

Co-authored-by: Kirill Vasilenko <kir-vasilenko@ybd.tech>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants