[MDEV-8528] SHOW SLAVE STATUS NONBLOCKING Created: 2015-07-23  Updated: 2023-03-10  Resolved: 2023-03-10

Status: Closed
Project: MariaDB Server
Component/s: Replication
Fix Version/s: N/A

Type: Task Priority: Minor
Reporter: Daniel Black Assignee: Unassigned
Resolution: Won't Fix Votes: 2
Labels: gsoc17


 Description   

https://www.percona.com/doc/percona-server/5.6/reliability/show_slave_status_nolock.html

would help prevent MDEV-8527 situtations



 Comments   
Comment by Daniel Black [ 2015-10-07 ]

Or the 5.7 changes that make locking unnecessary http://dev.mysql.com/doc/refman/5.7/en/show-slave-status.html

Comment by Jerry Hunter [ 2017-03-16 ]

Hi, I am Jerry H. Wolf a MS Computer science student at the University of Aachen and I will love to work on this project. I have 2 thoughts on this project.
1- We extend the SHOW SLAVE STATUS syntax to add the non-blocking clause to it then implement the logic behind it.
OR
2- We keep the current syntax and make regular SHOW SLAVE STATUS lock-free.
Im still trying to find the pros and cons of each option but if anyone has some other suggestions I will love to discuss them.

Comment by Daniel Black [ 2017-03-23 ]

A simpler syntax is always preferable. The integrity of the show slave status is also important. If both can be achieved reliably then adding a NON_BLOCKING option isn't needed. Proposals are open so get writing https://summerofcode.withgoogle.com

Comment by Jerry Hunter [ 2017-04-04 ]

Hi, Daniel,
I have been studying the grammar and I think the best approach for GSoC is we focus on adding the new syntax then we can update the parser to recognize both options as one that way we will have something like

<command options>
case SQLCOM_SHOW_SLAVE_STAT_NONBLOCKING:
case SQLCOM_SHOW_SLAVE_STAT:
  {
   res = show_slavestatus() | show_slave_status_nonblocking();
  break; 
  }
<command options>

Comment by Daniel Black [ 2017-04-04 ]

jhunter Well your proposal is in and I've read it. Its undergoing organisational assessment and you'll be notified of the outcomes once complete. The important aspect of the non-blocking is it actually non-locking. So what locks are held currently? Which ones will be held for a long time? And what can be done to mitigate it? How does the MySQL-5.7 code achieve non-blocking?

Comment by Daniel Black [ 2023-03-10 ]

Doesn't seem to be a driving need.

Generated at Thu Feb 08 07:27:50 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.