Bug #51184 MySQL Cluster : Determine nodes storing partition replicas
Submitted: 15 Feb 2010 11:58 Modified: 3 Mar 2010 6:20
Reporter: Frazer Clement Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S4 (Feature request)
Version:mysql-5.1-telco-6.2 OS:Any
Assigned to: Frazer Clement CPU Architecture:Any

[15 Feb 2010 11:58] Frazer Clement
Description:
The ndb_desc tool shipped with MySQL Cluster has a -p option which describes the partitions (fragments) of a table, indicating how many rows they contain, the amount of memory allocated etc.

However, it is not currently possible to determine via this tool (or from the NdbApi) which nodes contain replicas of each partition.

A mechanism to describe the partition id -> node mappings should be implemented at the NdbApi level and added to the ndb_desc tool.

This information can be useful for verifying distribution awareness mechanisms and supporting efficient application access to data stored in cluster.

How to repeat:
Run ndb_desc -p for a table to see partition information, but no information concerning mappings to nodes.

Suggested fix:
Expose the information contained within NdbApi.
[1 Mar 2010 13:25] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/101861

3084 Frazer Clement	2010-03-01
      Bug#51184 MySQL Cluster : Determine nodes storing partition replicas
      
      This fix adds a new method to the NdbDictionary::Table class of NdbApi, 
      getFragmentNodes().  This method returns the list of data nodes storing
      replicas of a fragment.  The default primary replica is the first node
      returned.  If not all replica storing nodes are available, the current
      replica primary may be a different node.
      
      Additionally, a --extra-node-info (-n) flag is added to ndb_desc, which
      extends the output of the --extra-partition-info (-p) option to include
      the list of nodes containing replicas of each fragment of the table.
[1 Mar 2010 14:30] Frazer Clement
Pushed to :
  6.2.19
  6.3.33
  7.0.14
  7.1.2
[3 Mar 2010 6:20] Jon Stephens
Documented feature addition as follows in the NDB-6.2.19, 6.3.33, 7.0.14, and 7.1.2 changelogs:

        It is now possible to determine, using the ndb_desc utility or
        the NDB API, which data nodes contain replicas of which
        partitions. For ndb_desc, a new --extra-table-info option is
        added to cause this information to be included in its output. A
        new method NdbDictionary::Table::getFragmentNodes() is added to
        the NDB API for obtaining this information programmatically.

Also updated documentation covering ndb_desc and NDB API.

Closed.
[3 Mar 2010 7:56] Jon Stephens
Docs commit is here: http://lists.mysql.com/commits/102144