[MDEV-21322] report slave progress to the master Created: 2019-12-16 Updated: 2023-12-22 |
|
| Status: | Stalled |
| Project: | MariaDB Server |
| Component/s: | Replication |
| Fix Version/s: | 11.5 |
| Type: | Task | Priority: | Critical |
| Reporter: | Anel Husakovic | Assignee: | Brandon Nesterenko |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | contribution, replication-monitoring, semisync | ||
| Issue Links: |
|
||||||||||||||||||||
| Description |
|
When using the semi-sync protocol, track each replica's progress. The SHOW REPLICA HOSTS output should be extended with two fields: one representing the GTID state last sent to the replica, and the other representing the GTID state last ACK'd from the replica. Additionally, treat rpl_semi_sync_master_timeout=0 as a special case where transactions do not await an ACK, but still report progress from the ack_thread on replica reply. When running SHOW REPLICA HOSTS instead of 4 columns
we want to have additional columns
Additional notes: |
| Comments |
| Comment by Andrei Elkin [ 2020-06-06 ] | |||||||||||||||||||||
|
The idea of 'reusing' in my understanding should be implemented as the following. The semisync mode slave acks on master event receive. The acks are handled by a special master server thread. The ack consists of file:pos and the slave id known too. So SHOW-SLAVE-HOSTS handler should be able to see those data. We'd like to add up the last acked GTID as well to the S-S-H reporting. anel: What is meant in The semisync can optionally be switched to a "dummy" mode, where the master will no longer wait for slaves ? Semisync always is able to temporarily turning OFF, on master. And then master acts as if the formerly semisync slave is normal. | |||||||||||||||||||||
| Comment by Jack [ 2020-08-15 ] | |||||||||||||||||||||
|
Thank you for your review I'm the author of the patchset (https://github.com/MariaDB/server/pull/1427), sadly I have not seen the notification on jira I'll update soon the code to show GTID as well About the dummy mode: So, I introduced a dummy semi-sync mode, where the master never actually waits for a slave. In that mode, the master never waits for a slave | |||||||||||||||||||||
| Comment by Jack [ 2020-08-23 ] | |||||||||||||||||||||
|
The GTID is now shown as well:
----------
---------- All the test are passing Thanks | |||||||||||||||||||||
| Comment by Andrei Elkin [ 2020-08-25 ] | |||||||||||||||||||||
|
To how to specify the new "dummy" mode, it was suggested (by danblack) on Github, to consider to add up 'NEVER' value to @@global.rpl_semi_sync_master_wait_point. | |||||||||||||||||||||
| Comment by Andrei Elkin [ 2020-08-25 ] | |||||||||||||||||||||
|
NONE actually reads better (as it answers to the point "question" in the variable name). | |||||||||||||||||||||
| Comment by Daniel Black [ 2020-08-26 ] | |||||||||||||||||||||
|
Yes that was the question, what actually sounds better. Glad you've decided. | |||||||||||||||||||||
| Comment by Andrei Elkin [ 2020-09-03 ] | |||||||||||||||||||||
|
anel: Salute! Maybe reassigning it back to you makes sense, as we (engineering/replication) don't seem to be able to implement it any time soon. Hopefully by 10.6 GA-ing the idea contributor will come up with the patch fulfilling the requirements. | |||||||||||||||||||||
| Comment by Anel Husakovic [ 2020-09-04 ] | |||||||||||||||||||||
|
Salute Elkin, ok, danblack and I will proceed further with this PR. | |||||||||||||||||||||
| Comment by Brandon Nesterenko [ 2022-06-10 ] | |||||||||||||||||||||
|
Setting myself to review the existing patch | |||||||||||||||||||||
| Comment by Anel Husakovic [ 2022-11-28 ] | |||||||||||||||||||||
|
I'm assigning to myself to finish this MDEV based on PR review. | |||||||||||||||||||||
| Comment by Anel Husakovic [ 2023-06-22 ] | |||||||||||||||||||||
|
Hi bnestere , Elkin, should we use this MDEV (or another) to allow show replica hosts show everything in 1 screen, like how long in time or packets are replicas delayed and if possible other things, to allow users extended view expressing the necessary informations about the state of transactions ? | |||||||||||||||||||||
| Comment by Andrei Elkin [ 2023-06-26 ] | |||||||||||||||||||||
|
anel, to whether to use this MDEV to cover up yet more slave state details (if I got the question correctly) I'd vote to do that under another ticket. | |||||||||||||||||||||
| Comment by Brandon Nesterenko [ 2023-08-16 ] | |||||||||||||||||||||
|
Review done via Slack | |||||||||||||||||||||
| Comment by Kristian Nielsen [ 2023-08-17 ] | |||||||||||||||||||||
|
> Review done via Slack Please don't use non-public channels for review, it makes it impossible for other to follow - Kristian. | |||||||||||||||||||||
| Comment by Anel Husakovic [ 2023-08-17 ] | |||||||||||||||||||||
|
Hi Kristian, | |||||||||||||||||||||
| Comment by Brandon Nesterenko [ 2023-08-18 ] | |||||||||||||||||||||
|
Thanks anel for the explanation And knielsen, to the general case, thanks for a great suggestion to use Zulip for interactive sessions! i had indeed used Slack (somewhat reluctantly) for them before. |