Hi,
These last few days I have been playing with the code for replication and the related synchronization code.
I regret not having had the time this summer to test this earlier.... But the impression I get is that the code has only been tested in a limited scenario.
Some of the following points could be considered "nice to have's", but I wanted to at least note them.
At every step I run into problems:
1) The added replication user missed the privileges to even query for the master info (REPLICATION CLIENT) 2) Synchronisation is only made possible directly after setting the master info. But for this the replication user requires even more privileges. So there should be some way to use different credentials for this.
3) When syncing it fails me either with : Fatal error: Allowed memory size of x bytes exhausted or Backtrace from warning 'Invalid argument supplied for foreach()' at svn_root/trunk/phpMyAdmin/libraries/server_synchronize.lib.php 641:
The memory problem occured when the database to sync was larger then the php's memory_limit. But increasing this to N*10 was still not enough :(.
4) There should be a way to change the Binlog_Do_DB and Binlog_Ignore_DB. Although this requires manual editing the my.cnf why not reuse the initial form to make this clear?
5) There should be a way to set Replicate_Do_DB on the slave. We could reuse some code from the master config generator for this.
6) Why not include a small list of slaves for a configured master? SHOW SLAVE HOSTS; should provide this data
7) The code style and HTML validity are standards are not met. Indentation, newlines ( I saw a dos2unix was needed by Michal), overall structure in harmony with the style guidelines Could we add this to the list of 'things to check' on future GSOC's?
In conclusion, I would like to ask the GSOC students to look over the svn diffs from the last few days which relate to the new code. If you are willing to help in fixing similar problems then that's great, but at least try to learn from them.
Herman van Rink a écrit :
Hi,
These last few days I have been playing with the code for replication and the related synchronization code.
I regret not having had the time this summer to test this earlier.... But the impression I get is that the code has only been tested in a limited scenario.
I only did limited tests, with MySQL sandboxes.
Some of the following points could be considered "nice to have's", but I wanted to at least note them.
I will check these points ASAP.
Hi,
Thank you for your feedback and HTML validity corrections!
At first, I will look at the points and try to correct the problem with replication user.
Could you please provide some further feedback about testing the code? I've been testing the code on a group of fresh installations of MySQL sandbox and on one real master-master replication environment.
Best regards,
Tomas
Herman van Rink a écrit :
Hi,
These last few days I have been playing with the code for replication and the related synchronization code.
I regret not having had the time this summer to test this earlier.... But the impression I get is that the code has only been tested in a limited scenario.
I only did limited tests, with MySQL sandboxes.
Some of the following points could be considered "nice to have's", but I wanted to at least note them.
I will check these points ASAP.
-- Marc Delisle http://infomarc.info
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Phpmyadmin-devel mailing list Phpmyadmin-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/phpmyadmin-devel
Hi,
Thank you for your feedback and HTML validity corrections!
At first, I will look at the points and try to correct the problem with replication user.
Could you please provide some further feedback about testing the code? I've been testing the code on a group of fresh installations of MySQL sandbox and on one real master-master replication environment.
Best regards,
Tomas
Herman van Rink a écrit :
Hi,
These last few days I have been playing with the code for replication and the related synchronization code.
I regret not having had the time this summer to test this earlier.... But the impression I get is that the code has only been tested in a limited scenario.
I only did limited tests, with MySQL sandboxes.
Some of the following points could be considered "nice to have's", but I wanted to at least note them.
I will check these points ASAP.
-- Marc Delisle http://infomarc.info
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Phpmyadmin-devel mailing list Phpmyadmin-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/phpmyadmin-devel
Herman van Rink a écrit :
Hi, 3) When syncing it fails me either with : Fatal error: Allowed memory size of x bytes exhausted or Backtrace from warning 'Invalid argument supplied for foreach()' at svn_root/trunk/phpMyAdmin/libraries/server_synchronize.lib.php 641:
The memory problem occured when the database to sync was larger then the php's memory_limit. But increasing this to N*10 was still not enough :(.
Herman, I changed the logic when you click "Synchronize databases" to avoid loading data in memory, and to take $cfg['ExecTimeLimit'] into account. I did not test this via the Replication panel but via the Synchronize panel.
toms@linuxos.sk wrote:
Hi,
Thank you for your feedback and HTML validity corrections!
At first, I will look at the points and try to correct the problem with replication user.
Could you please provide some further feedback about testing the code? I've been testing the code on a group of fresh installations of MySQL sandbox and on one real master-master replication environment.
The trick to testing this sort of thing is to define multiple scenarios, you could also call them use-cases. In these you lay-out steps that a user would need to accomplish a particular task
E.g.: * two clean databases, replicate all * master with data, clean slave, replicate all * master and slave with data, replicate some * Existing replication setup where one of the servers changes
Of cause it's always a good idea to think of mistake that a user could make, to see is there is sufficient warning or error handling.
Ideally you could implement such scenarios in a unit test, but the most important is that you think of several and walk through these.