file groups with the MySQL data dictionary. This is done using a thread, the NDB  metadata change monitor thread, which runs in the background and checks periodically for inconsistencies between the NDB  dictionary and the MySQL data dictionary. 

The monitor performs metadata checks every 60 seconds by default. The polling interval can be adjusted by setting the value of the ndb_metadata_check_interval  system variable; polling can be disabled altogether by setting the ndb_metadata_check  system variable to OFF . A status variable (also added in NDB 8.0.16) Ndb_metadata_detected_count  shows the number of times since mysqld  was last started that inconsistencies have been detected. 

Beginning in version 8.0.18, NDB  ensures that NDB  table, log file group, and tablespace objects submitted by the metadata change monitor thread during operations following startup are automatically checked for mismatches and synchronized by the NDB  binlog thread. 

NDB 8.0.18 also adds two status variables relating to automatic synchronization: Ndb_metadata_synced_count  shows the number of objects synchronized automatically; Ndb_metadata_excluded_count  indicates the number of objects for which synchronization has failed (prior to NDB 8.0.22, this variable was named Ndb_metadata_blacklist_size ). In addition, you can see which objects have been synchronized by inspecting the cluster log. 

NDB 8.0.19 further enhances this functionality by adding databases to those objects in which changes are detected and synchronized. Only databases actually used by NDB  tables are so handled; other databases which may be present in the MySQL data dictionary are ignored. This eliminates a previous requirement, for the case when a table existed in NDB  but the table and the database towhich it belonged did not exist on the SQL node, to create this database manually; now in such cases, the database and all NDB  tables belonging to it should be created on the SQL node automatically. 

NDB 8.0.19 also introduces the ndb_metadata_sync  system variable; setting this variable to true  overrides any settings that have been made for ndb_metadata_check_interval  and ndb_metadata_check , causing the change monitor thread to begin coninuous metadata change detection. 

In NDB 8.0.22 and later, setting ndb_metadata_sync  to true  clears the list of objects for which synchronization has failed previously, which means it is no longer necessary to discover individual tables or to re-trigger synchronization by reconnecting the SQL node to the cluster. In addition, setting this variable to false  clears the list of objects waiting to be retried. 

Beginning with NDB 8.0.21, more detailed information about the current state of automatic synchronization than can be obtained from log messages or status variables is provided by two new tables added to the MySQL Performance Schema. The tables are listed here: 

• ndb_sync_pending_objects : Contains information about database objects for which mismatches have been detected between the NDB  dictionary and the MySQL data dictionary (and which have not been excluded from automatic synchronization). 

• ndb_sync_excluded_objects : Contains information about NDB  database objects which have been excluded because they cannot be synchronized between the NDB  dictionary and the MySQL data dictionary, and thus require manual intervention. 

A row in one of these tables provides the database object’s parent schema, name, and type. Types of objects include schemas, tablespaces, log file groups, and tables. (If the object is a log file group 

