-
Arnab Ray authored
Problem: -------- In order to synchronize excluded metadata objects, users had to correct the underlying issue, if any, and then trigger the synchronization of the objects again. This could be achieved through discovery of individual tables or a complete synchronization by virtue of reconnecting the MySQL Server to the Cluster. Table discovery doesn't scale well with an increase in the number of tables and MySQL Servers while the latter approach involves the overhead of a reconnection to the Cluster. Fix: ---- The excluded objects list is cleared when ndb_metadata_sync is set by the user. This makes all such objects eligible for synchronization in the ensuing detection run thus providing a simple way for users to retry the sync of all excluded objects. An additional improvement is to remove the validation logic for retry objects which used to take place at the beginning of every detection run. Since these objects are of interest only for the length of time ndb_metadata_sync remains enabled, the list of retry objects is cleared when ndb_metadata_sync is flipped to OFF which denotes that all changes have been synchronized. A further effect of this change is that the retry objects data structure no longer needs to be protected by a mutex. The data structure continues to be accessed by the binlog and metadata change monitor threads but this occurs only when ndb_metadata_sync is enabled and in serial fashion. Change-Id: Ie49367c05f6434fa36dabe280d09ad7a4348820c
Arnab Ray authoredProblem: -------- In order to synchronize excluded metadata objects, users had to correct the underlying issue, if any, and then trigger the synchronization of the objects again. This could be achieved through discovery of individual tables or a complete synchronization by virtue of reconnecting the MySQL Server to the Cluster. Table discovery doesn't scale well with an increase in the number of tables and MySQL Servers while the latter approach involves the overhead of a reconnection to the Cluster. Fix: ---- The excluded objects list is cleared when ndb_metadata_sync is set by the user. This makes all such objects eligible for synchronization in the ensuing detection run thus providing a simple way for users to retry the sync of all excluded objects. An additional improvement is to remove the validation logic for retry objects which used to take place at the beginning of every detection run. Since these objects are of interest only for the length of time ndb_metadata_sync remains enabled, the list of retry objects is cleared when ndb_metadata_sync is flipped to OFF which denotes that all changes have been synchronized. A further effect of this change is that the retry objects data structure no longer needs to be protected by a mutex. The data structure continues to be accessed by the binlog and metadata change monitor threads but this occurs only when ndb_metadata_sync is enabled and in serial fashion. Change-Id: Ie49367c05f6434fa36dabe280d09ad7a4348820c
Loading