Skip to content

Synchronization of the read and write order for compactified topics #22557

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

Alek5andr-Kotov
Copy link
Collaborator

Changelog entry

Added a synchronization primitive. Shared read, exclusive write.

Changelog category

  • Not for changelog (changelog entry is not required)

Description for reviewers

...

Copy link

github-actions bot commented Aug 8, 2025

🟢 2025-08-08 07:58:09 UTC The validation of the Pull Request description is successful.

Copy link

github-actions bot commented Aug 8, 2025

2025-08-08 08:00:32 UTC Pre-commit check linux-x86_64-relwithdebinfo for abaeb96 has started.
2025-08-08 08:00:47 UTC Artifacts will be uploaded here
2025-08-08 08:04:05 UTC ya make is running...
🔴 2025-08-08 08:19:03 UTC Build failed, see the logs. Also see fail summary

Copy link

github-actions bot commented Aug 8, 2025

2025-08-08 08:03:00 UTC Pre-commit check linux-x86_64-release-asan for abaeb96 has started.
2025-08-08 08:03:33 UTC Artifacts will be uploaded here
2025-08-08 08:06:53 UTC ya make is running...
🔴 2025-08-08 08:14:34 UTC Build failed, see the logs. Also see fail summary

if (!RequestsInflight && WaitingInflightRequests.empty() && (ExclusiveLockState == EExclusiveLockState::EAcquiring)) {
ExclusiveLockState = EExclusiveLockState::EAcquired;
ReplyExclusiveLockAcquired(ExclusiveLockRequester);
}
}

void TPartitionQuoterBase::ProcessInflightQueue() {
auto now = ActorContext().Now();
while (!WaitingInflightRequests.empty() && RequestsInflight < MaxInflightRequests) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

Не надо ли тут проверить еще и стейт лока, что он Released?


void TPartitionQuoterBase::HandleReleaseExclusiveLock(TEvPQ::TEvReleaseExclusiveLock::TPtr& ev, const TActorContext& ctx)
{
ExclusiveLockState = EExclusiveLockState::EReleased;
Copy link
Collaborator

Choose a reason for hiding this comment

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

Y_VERIFY если стейт EReleased

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants