Skip to content
  • Arnab Ray's avatar
    873571b3
    Bug#27543602 NDB INDEX STAT TABLES MISSING FROM DD AFTER AN INITIAL SYSTEM RESTART · 873571b3
    Arnab Ray authored
    Problem:
    --------
    
    The NDB index stat tables are missing from the MySQL Server after
    an initial system restart. The binlog thread of the first MySQL
    Server connecting to the Cluster post an initial restart pokes
    the index stat thread to inform it about the initial restart.
    The index stat thread then recycles its Ndb object and creates the
    index stat tables in NDB. The binlog thread signals the index stat
    thread after the synchronization phase which results in the tables
    not being synced to the DD of the first MySQL Server connecting to
    the Cluster.
    
    If there are multiple MySQL Servers connecting to the Cluster,
    there's a race condition during subsequent MySQL Server connections
    where the index stat tables could be synchronized or not depending
    on when the index stat thread creates the tables in NDB. If the
    creation occurs in the middle of the sync during binlog setup of a
    Server, it opens the door to unpredictable behaviour and errors in
    the sync of these tables.
    
    Fix:
    ----
    
    The ndb_index_stat_head and ndb_index_stat_sample tables aren't
    exposed to the MySQL Server. This makes them exempt from all types
    of metadata synchronization and table discovery. The presence of
    these tables in the MySQL Server offers little value to users since
    their contents are incomprehensible without some kind of parsing.
    The tables remain visible and accessible via NDB tools such as
    ndb_show_tables, ndb_desc, and ndb_select_all.
    
    Change-Id: I30bdce6451cc1c99b6f7dc982fc634ddcce61404
    873571b3
    Bug#27543602 NDB INDEX STAT TABLES MISSING FROM DD AFTER AN INITIAL SYSTEM RESTART
    Arnab Ray authored
    Problem:
    --------
    
    The NDB index stat tables are missing from the MySQL Server after
    an initial system restart. The binlog thread of the first MySQL
    Server connecting to the Cluster post an initial restart pokes
    the index stat thread to inform it about the initial restart.
    The index stat thread then recycles its Ndb object and creates the
    index stat tables in NDB. The binlog thread signals the index stat
    thread after the synchronization phase which results in the tables
    not being synced to the DD of the first MySQL Server connecting to
    the Cluster.
    
    If there are multiple MySQL Servers connecting to the Cluster,
    there's a race condition during subsequent MySQL Server connections
    where the index stat tables could be synchronized or not depending
    on when the index stat thread creates the tables in NDB. If the
    creation occurs in the middle of the sync during binlog setup of a
    Server, it opens the door to unpredictable behaviour and errors in
    the sync of these tables.
    
    Fix:
    ----
    
    The ndb_index_stat_head and ndb_index_stat_sample tables aren't
    exposed to the MySQL Server. This makes them exempt from all types
    of metadata synchronization and table discovery. The presence of
    these tables in the MySQL Server offers little value to users since
    their contents are incomprehensible without some kind of parsing.
    The tables remain visible and accessible via NDB tools such as
    ndb_show_tables, ndb_desc, and ndb_select_all.
    
    Change-Id: I30bdce6451cc1c99b6f7dc982fc634ddcce61404
Loading