-
Notifications
You must be signed in to change notification settings - Fork 727
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
Round-robin updateMember may cause the timestamp to fallback #6770
Comments
After some investigation, I found the following minimum reproduction steps, presume we have a keyspace 1 belonging to group 1.
The critical point here is the order in which steps 4 and 5 occur, that is, the reconstruction of the stream needs to be triggered before the TSO node of the next polling in round-robin does not initialize this group at this time. |
Because the trigger conditions are complicated, we consider not fixing this problem for the time being. However, due to the lack of some constraints in the current client-side group switching mechanism, it is still worthwhile to introduce some protection mechanisms to limit the occurrence of this situation. |
/report customer |
Bug Report
We use a round-robin way to request the TSO server with
FindGroupByKeyspaceID
gRPC call.pd/client/tso_service_discovery.go
Lines 418 to 441 in b176a0a
However, if the requested TSO server satisfies this kind of case, it may cause the timestamp to fallback.
If we do
updateMember
quickly while requesting the TSO, it may cause the keyspace group in the request to change between the default group and group 1, resulting in the timestamp fallback.The text was updated successfully, but these errors were encountered: