-
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
Make TwoPC engine initialization async. #8048
Conversation
Signed-off-by: Jacques Grove <aquarapid@gmail.com>
sufficient. Signed-off-by: Jacques Grove <aquarapid@gmail.com>
Some of the TwoPC tests are failing now. |
Yeah, I guess since they start issuing TXes immediately. I'll take a look. |
Signed-off-by: Jacques Grove <aquarapid@gmail.com>
Signed-off-by: Jacques Grove <aquarapid@gmail.com>
tests Signed-off-by: Jacques Grove <aquarapid@gmail.com>
Signed-off-by: Jacques Grove <aquarapid@gmail.com>
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 is a clever idea. I have only one nit.
LGTM but let's have @sougou review as well.
@@ -453,6 +453,11 @@ func (tsv *TabletServer) TableGC() *gc.TableGC { | |||
return tsv.tableGC | |||
} | |||
|
|||
// TwoPCEngineWait waits until the TwoPC engine has been opened, and the redo read | |||
func (tsv *TabletServer) TwoPCEngineWait() { |
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.
nit: rename to WaitForTwoPCEngine
Also need a corresponding issue. |
There was a "deadlock" here if you use semi-sync and
twopc during a failover, because we open the twopc
engine first, and it immediately tries to create its
metadata tables in
_vt
. On the PRS target, thatthen hangs if using semi-sync, and since the code
to do the repointing of the replicas to the new master
sits "behind" the twopc engine open, the PRS would
never complete.
Signed-off-by: Jacques Grove aquarapid@gmail.com