Skip to content
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

[NEW] Consolidate wait states #427

Closed
PingXie opened this issue May 3, 2024 · 0 comments · Fixed by #562
Closed

[NEW] Consolidate wait states #427

PingXie opened this issue May 3, 2024 · 0 comments · Fixed by #562

Comments

@PingXie
Copy link
Member

PingXie commented May 3, 2024

I agree. I'm saying we already have the notion that a client is blocked with a pending command, that can get re-executed once the blocking is done. (That is how the normal command blocking works). The blocking mechanic is functionally the same as the other wait (wait for a replack from k replicas then unblock).

Originally posted by @madolson in #245 (comment)

PingXie added a commit that referenced this issue May 31, 2024
There are currently three block types: BLOCKED_WAIT, BLOCKED_WAITAOF,
and BLOCKED_WAIT_PREREPL, used to block clients executing `WAIT`,
`WAITAOF`, and `CLUSTER SETSLOT`, respectively. They share the same
workflow: the client is blocked until replication to the expected number
of replicas completes. However, they provide different responses
depending on the commands involved. Using distinct block types leads to
code duplication and reduced readability. This PR consolidates the three
types into a single WAIT type, differentiating them using the pending
command to ensure the appropriate response is returned.


Fix #427

---------

Signed-off-by: Ping Xie <[email protected]>
naglera pushed a commit to naglera/placeholderkv that referenced this issue Jun 10, 2024
There are currently three block types: BLOCKED_WAIT, BLOCKED_WAITAOF,
and BLOCKED_WAIT_PREREPL, used to block clients executing `WAIT`,
`WAITAOF`, and `CLUSTER SETSLOT`, respectively. They share the same
workflow: the client is blocked until replication to the expected number
of replicas completes. However, they provide different responses
depending on the commands involved. Using distinct block types leads to
code duplication and reduced readability. This PR consolidates the three
types into a single WAIT type, differentiating them using the pending
command to ensure the appropriate response is returned.


Fix valkey-io#427

---------

Signed-off-by: Ping Xie <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

1 participant