[MDEV-7502] Automatic provisioning of slave Created: 2015-01-25 Updated: 2024-01-14 |
|
| Status: | Open |
| Project: | MariaDB Server |
| Component/s: | Replication |
| Fix Version/s: | N/A |
| Type: | New Feature | Priority: | Minor |
| Reporter: | Kristian Nielsen | Assignee: | Kristian Nielsen |
| Resolution: | Unresolved | Votes: | 30 |
| Labels: | gsoc15, gsoc17, gsoc18, gsoc19, gtid, replication, sst | ||
| Issue Links: |
|
||||||||||||||||||||||||||||||||||||
| Description |
| Comments |
| Comment by VAROQUI Stephane [ 2015-06-04 ] |
|
There is an other strategy that would enable resynchronization of a table as well 1 - Create DDL on slave slave_exec_mode=LOADING IDEMPOTENT mode can not be use in this scenario because UPDATE ROW EVENTS is silently ignored on KEY NOT FOUND , the LOADING mode would not ignore and will INSERT ROW EVENT on KEY NOT found A special DELETE row log is needed to be replayed at the end of the dirty dump This would enable a RESYNC TABLE FROM MASTER command |
| Comment by Sergei Golubchik [ 2015-11-06 ] |
|
One option could be MDEV-8925, protocol extension. Another option would be to reuse galera SST scripts (may be generalizing them appropriately). |
| Comment by Ibrar Arshad [ 2017-03-16 ] |
|
Hi, I am a prospective participant of Google summer of code 2017 and I am very interested in taking up this project. I have read the summary on the ticket and have achieved a fair understanding of the problem to be solved even if the implementation details are not clear(due to unfamiliarity with the codebase). The use-case as I understand is that we want the slave to auto-replicate the data from master once pointed the master and we want to do it in such a manner that the current as well as the past modifications to data on the master are relayed to the slave parallely. I have a few questions related to the implementation suggested in the summary:
I would like to discuss the project further in detail before submitting a proposal but I don't know who to contact specifically since no name is mentioned in the mentor field of this project on the MariaDb GSOC page. If the project is happening, may I please know who is mentoring it? Also, it would be great if someone can respond to my queries so that we can discuss the details. Thanks. |
| Comment by Vishwanath Bharadwaja [ 2017-03-18 ] |
|
Hi, My name is Vishwanath Bharadwaj and I'm a student at Amrita School of engineering, India. I have fair knowledge on clustered system, Socket programming and data transfer between the nodes. After reading the description I was very much fascinated with the idea because I have experienced the same problem while working on Hadoop. This can be solved by using same mechanism Hadoop uses to replicate its nodes. I am very much interested in doing this project. I would also like to know if this project is being done by any other student so that I can opt another project, I'm interested in, from the list. I would like to discuss further proceeding of the project if you can provide me with the details of the mentor. Thank you. |
| Comment by Vishwanath Bharadwaja [ 2017-03-19 ] |
|
Hey, |
| Comment by Sergei Golubchik [ 2017-03-19 ] |
|
Use maria-developers@lists.launchpad.net, as GSoC page says. |
| Comment by Vishwanath Bharadwaja [ 2017-03-19 ] |
|
Thank you Mr. Sergei |
| Comment by Kristian Nielsen [ 2017-03-19 ] |
|
There are some important issues in this review of an earlier attempt: |
| Comment by Ibrar Arshad [ 2017-03-19 ] |
|
Thanks for pointing to that Kristian. I will definitely look in to that. Also, I sent a query to the dev mailing list earlier, I'll appreciate if you can clarify a few things there. |
| Comment by Vishwanath Bharadwaja [ 2017-03-21 ] |
|
Thank you Kristian. It helped me gain some insight on how the semaphores were used in the code and gave me a clear view of what we are trying to achieve here. |
| Comment by Daniel Black [ 2017-03-23 ] |
|
submission are open if you'd like to write a proposal https://summerofcode.withgoogle.com |
| Comment by Manjot Singh (Inactive) [ 2018-03-21 ] |
|
IMO the best way to implement this is KISS. Since MariaDB already contains Galera libraries, the SST portion could be leveraged to allow async slave creation after a fresh install. Flow: New server is provisioned |
| Comment by VAROQUI Stephane [ 2018-03-22 ] |
|
You can found SST like reseeding in replication-manager 1.2 feature, this task was intended for a improving logical replication, cross engine and parallel replication. Implementation can be open to enable other type of logical operation like checksum and sync table using an existing replication stream and to possibly improve binlog management when they are used for big table seeding or reseeding. Note that Galera library does not implement SST but a collection of bash script with external dependencies and tools like xtrabackup and mariadb-backup, In the other hand the lack of such generic API on replication force galera or similar implementation to maintain AKA gcache and to use external tools to reseed . |
| Comment by Manjot Singh (Inactive) [ 2018-03-22 ] |
|
My point is lets leverage those scripts and what works already to have a quick feature win which we then work to make better over time. |
| Comment by Manjot Singh (Inactive) [ 2019-03-26 ] |
|
I like the concept of this idea, but it could take a week+ to restore the replica. I like the idea of leveraging galera's pluggable SST method (ie mysqldump,rsync, mariabackup can all be used, with mariabackup preferred). This would allow much faster restore of 1TB+ databases. Great ideas overall. |
| Comment by Geoff Montee (Inactive) [ 2019-11-20 ] |
|
If MDEV-21106 were implemented in MariaDB Server, then the clone plugin could be used for this. |
| Comment by VAROQUI Stephane [ 2019-12-17 ] |
|
I really don't think it's a matter of week because // replication is faster than a mysqldump restore and can saturate any bandwidth, more over, after 6 years |
| Comment by VAROQUI Stephane [ 2019-12-17 ] |
|
This task well designed can enable any blocking DDL to be done without blocking slave , a table copy can be created injected row in chunk in an other replication domain and rename in the main domain at the end |
| Comment by Rick James [ 2021-08-25 ] |
|
I like the feature, but think there are some details to work out.
|
| Comment by Michael Widenius [ 2023-05-19 ] |
|
The current solution for this is to use MaxScale 22.08, which can do automatic rebuild of server. |
| Comment by Kristian Nielsen [ 2023-05-20 ] |
|
It's completely fair to not prioritise this, but why close it? It's a very valuable task, and a feature that anyone would expect to find in a replication system, if it wasn't because we've gotten used to not having it for so many years with mysql/mariadb replication. |