-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Pass Semi sync information from durability policy and use it to log discrepancies #9533
Pass Semi sync information from durability policy and use it to log discrepancies #9533
Conversation
…er calling a reparent operation Signed-off-by: Manan Gupta <manan@planetscale.com>
…ameter Signed-off-by: Manan Gupta <manan@planetscale.com>
…rences with enable_semi_sync flag Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
…f enabled Signed-off-by: Manan Gupta <manan@planetscale.com>
…parameter Signed-off-by: Manan Gupta <manan@planetscale.com>
…arameter Signed-off-by: Manan Gupta <manan@planetscale.com>
… a parameter Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
…y-policy Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
…y-policy Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
…he changed type and not with the original Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Apart from the checks in this PR, I also made a change wherein we start using the durability policy information in
On that PR, it can be observed that the only failing tests are from
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't have much quality review content for now, just a few naming suggestions.
|
||
/** VEvent keyspace */ | ||
keyspace?: (string|null); | ||
|
||
/** VEvent shard */ | ||
shard?: (string|null); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can one of you post reminders in #maintainers and #developers so that people don't miss the step of generating vtadmin files?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've posted another reminder to both channels. (This was also mentioned in #developers back at the beginning of December.) I expect this will (understandably) be an issue until we can enforce this in CI. The ticket for that is #9571.
/** | ||
* ApplySchemaRequest sql_mode. | ||
* @member {string} sql_mode | ||
* @memberof tabletmanagerdata.ApplySchemaRequest | ||
* @instance | ||
*/ | ||
ApplySchemaRequest.prototype.sql_mode = ""; | ||
|
||
/** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems to be an artifact of a different PR as well.
@@ -35887,6 +35932,7 @@ $root.tabletmanagerdata = (function() { | |||
* Properties of a StartReplicationRequest. | |||
* @memberof tabletmanagerdata | |||
* @interface IStartReplicationRequest | |||
* @property {boolean|null} [semiSync] StartReplicationRequest semiSync |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@notfelineit do these changes affect the "destructive" tablet actions UI?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think so, not as it exists - should we add a semiSync/durability option in the UI?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we might have to. Do you have a screenshot handy of what this looks like on the UI today?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suspect that this directly calls the TabletManager grpc API instead of going through vtctld API.
My suggestion is to add a new vtctld API. Then semi_sync won't need to be provided by the user, it can be computed by VtctldServer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll check today and see which it is using - and switch to vtctld if necesary.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@deepthi vtadmin uses this codepath: https://cs.github.com/vitessio/vitess/blob/f906693c6441f4b41d8f842ffb9dba85258b5158/go/vt/vtctl/grpcvtctldserver/server.go?q=StartReplication#L2439 it does call the tablet manager API, but I think this is the vtctld API mentioned? it calls IsReplicaSemiSync
to provide semi-sync setting.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work.
Please address all feedback and then this can be merged.
Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Description
In release 13, we will introduce a new flag
durability
in vtctld and vtctl. That durability policy should be the one that reflects the semi-sync settings and we will eventually deprecateenable_semi_sync
flag on the vttablets. But all of this cannot be accomplished in a single release because of upgrade downgrade considerations. So the plan is as follows -durability
enable_semi_sync
flag in v13, so the new flag is only used for logging but it is expected that vtctl, vtctld binaries of v13 will have the flag set.enable_semi_sync
and use the information coming from the durability policies.This PR accomplishes this change of passing the information down and logging the differences for release 13.
Related Issue(s)
Checklist
Deployment Notes