List:Commits« Previous MessageNext Message »
From:mikael Date:February 7 2007 12:54pm
Subject:bk commit into 5.1 tree (mikron:1.2412)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of mikron. When mikron does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2007-02-07 13:53:55+01:00, mikron@stripped +7 -0
  WL 3683:
  Prepare MySQL Cluster for upto 255 data nodes
  by setting of a constant.
  Constant now set to handle upto 128 data nodes
  and in total 255 nodes in cluster

  storage/ndb/include/kernel/NodeBitmask.hpp@stripped, 2007-02-07 13:53:50+01:00, mikron@stripped +1 -1
    Increasing the bitmask to handle upto 255 data nodes

  storage/ndb/include/kernel/ndb_limits.h@stripped, 2007-02-07 13:53:51+01:00, mikron@stripped +1 -1
    Setting max number of data nodes to 128 (1 through 129)

  storage/ndb/include/kernel/signaldata/ReadNodesConf.hpp@stripped, 2007-02-07 13:53:51+01:00, mikron@stripped +2 -3
    Handle Distributed length of READ_NODESCONF which doesn't need
    the bitmaps.

  storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp@stripped, 2007-02-07 13:53:51+01:00, mikron@stripped +2 -2
    Use EXECUTE_DIRECT since signal length is larger than 25 to
    avoid having to introduce Long signal handling

  storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp@stripped, 2007-02-07 13:53:51+01:00, mikron@stripped +2 -0
    Some function becomes the same in C++ when
    _NODE_BITMASK_SIZE == _NDB_NODE_BITMASK_SIZE

  storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp@stripped, 2007-02-07 13:53:51+01:00, mikron@stripped +26 -13
    Temporarily disabled an event report that was longer than 25 words
    Cleared bitmask
    Use EXECUTE_DIRECT to avoid conversion to long signal handling
    Two functions become the same if
    _NODE_BITMASK_SIZE == _NDB_NODE_BITMASK_SIZE

  storage/ndb/src/kernel/vm/VMSignal.hpp@stripped, 2007-02-07 13:53:51+01:00, mikron@stripped +4 -1
    Some function becomes the same in C++ when
    _NODE_BITMASK_SIZE == _NDB_NODE_BITMASK_SIZE

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	mikron
# Host:	mikael-ronstr-ms-dator.local
# Root:	/Users/mikron/mysql_clones/wl3683

--- 1.5/storage/ndb/include/kernel/NodeBitmask.hpp	2007-01-17 16:27:41 +01:00
+++ 1.6/storage/ndb/include/kernel/NodeBitmask.hpp	2007-02-07 13:53:50 +01:00
@@ -35,7 +35,7 @@
  *
  * Note that this is used in a lot of signals
  */
-#define _NDB_NODE_BITMASK_SIZE 4
+#define _NDB_NODE_BITMASK_SIZE 8
 
 /**
  * No of 32 bits word needed to store B bits for N nodes

--- 1.29/storage/ndb/include/kernel/ndb_limits.h	2007-01-17 16:27:41 +01:00
+++ 1.30/storage/ndb/include/kernel/ndb_limits.h	2007-02-07 13:53:51 +01:00
@@ -24,7 +24,7 @@
  * Note that actual value = MAX_NODES - 1,
  *  since NodeId = 0 can not be used
  */
-#define MAX_NDB_NODES 65
+#define MAX_NDB_NODES 129
 #define MAX_NODES     256
 #define UNDEF_NODEGROUP 0xFFFF
 

--- 1.5/storage/ndb/include/kernel/signaldata/ReadNodesConf.hpp	2007-01-17 16:27:41 +01:00
+++ 1.6/storage/ndb/include/kernel/signaldata/ReadNodesConf.hpp	2007-02-07 13:53:51 +01:00
@@ -49,9 +49,8 @@
 
   friend bool printREAD_NODES_CONF(FILE*, const Uint32 *, Uint32, Uint16);
 public:
-  STATIC_CONST( SignalLength = 3 );
-  STATIC_CONST( SectionLength = 5*NdbNodeBitmask::Size );
-  STATIC_CONST( NoOfSections = 1 );
+  STATIC_CONST( DistributedSignalLength = 3 );
+  STATIC_CONST( SignalLength = 3 + 5*NdbNodeBitmask::Size );
 private:
   
   Uint32 noOfNodes;

--- 1.45/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp	2007-01-17 16:27:41 +01:00
+++ 1.46/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp	2007-02-07 13:53:51 +01:00
@@ -1644,8 +1644,8 @@
   readNodes->ndynamicId = cdynamicNodeId;
   if (cstartPhase > ZSTART_PHASE_2) {
     jam();
-    sendSignal(TuserBlockref, GSN_READ_NODESCONF, signal, 
-	       ReadNodesConf::SignalLength, JBB);
+    EXECUTE_DIRECT(refToBlock(TuserBlockref), GSN_READ_NODESCONF, signal, 
+	           ReadNodesConf::SignalLength);
     
   } else {
     jam();

--- 1.19/storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp	2007-02-06 08:56:04 +01:00
+++ 1.20/storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp	2007-02-07 13:53:51 +01:00
@@ -358,7 +358,9 @@
   void stateArbitChoose(Signal* signal);
   void stateArbitCrash(Signal* signal);
   void computeArbitNdbMask(NodeBitmask& aMask);
+#if _NODE_BITMASK_SIZE != _NDB_NODE_BITMASK_SIZE
   void computeArbitNdbMask(NdbNodeBitmask& aMask);
+#endif
   void reportArbitEvent(Signal* signal, Ndb_logevent_type type);
 
   // Initialisation

--- 1.50/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp	2007-02-06 08:56:04 +01:00
+++ 1.51/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp	2007-02-07 13:53:51 +01:00
@@ -1404,8 +1404,10 @@
     c_start.m_starting_nodes.copyto(sz, ptr); ptr += sz;
     c_start.m_skip_nodes.copyto(sz, ptr); ptr += sz;
     report_mask.copyto(sz, ptr); ptr+= sz;
+    /*
     sendSignal(CMVMI_REF, GSN_EVENT_REP, signal, 
 	       4+4*NdbNodeBitmask::Size, JBB);
+    */
   }
   return retVal;
   
@@ -2067,6 +2069,10 @@
 void Qmgr::initData(Signal* signal) 
 {
   NodeRecPtr nodePtr;
+  c_definedNodes.clear();
+  c_clusterNodes.clear();
+  c_connectedNodes.clear();
+  c_readnodes_nodes.clear();
   for (nodePtr.i = 1; nodePtr.i < MAX_NODES; nodePtr.i++) {
     ptrAss(nodePtr, nodeRec);
     nodePtr.p->ndynamicId = 0;	
@@ -3747,21 +3753,27 @@
   NdbNodeBitmask tmp = c_definedNodes;
   tmp.bitANDC(c_clusterNodes);
 
-  if (TBref == reference())
+  readNodes->noOfNodes = c_definedNodes.count();
+  readNodes->masterNodeId = cpresident;
+  readNodes->ndynamicId = nodePtr.p->ndynamicId;
+  c_definedNodes.copyto(NdbNodeBitmask::Size, readNodes->definedNodes);
+  c_clusterNodes.copyto(NdbNodeBitmask::Size, readNodes->clusterNodes);
+  tmp.copyto(NdbNodeBitmask::Size, readNodes->inactiveNodes);
+  NdbNodeBitmask::clear(readNodes->startingNodes);
+  NdbNodeBitmask::clear(readNodes->startedNodes);
+  if (refToNode(TBref) == getOwnNodeId())
   {
+    jam();
     /* Only send bitmasks locally in node */
-    readNodes->noOfNodes = c_definedNodes.count();
-    readNodes->masterNodeId = cpresident;
-    readNodes->ndynamicId = nodePtr.p->ndynamicId;
-    c_definedNodes.copyto(NdbNodeBitmask::Size, readNodes->definedNodes);
-    c_clusterNodes.copyto(NdbNodeBitmask::Size, readNodes->clusterNodes);
-    tmp.copyto(NdbNodeBitmask::Size, readNodes->inactiveNodes);
-    NdbNodeBitmask::clear(readNodes->startingNodes);
-    NdbNodeBitmask::clear(readNodes->startedNodes);
+    EXECUTE_DIRECT(refToBlock(TBref), GSN_READ_NODESCONF, signal,
+                   ReadNodesConf::SignalLength);
+  }
+  else
+  {
+    jam();
+    sendSignal(TBref, GSN_READ_NODESCONF, signal, 
+               ReadNodesConf::DistributedSignalLength, JBB);
   }
-
-  sendSignal(TBref, GSN_READ_NODESCONF, signal, 
-	     ReadNodesConf::SignalLength, JBB);
 }//Qmgr::execREAD_NODESREQ()
 
 void Qmgr::systemErrorBecauseOtherNodeFailed(Signal* signal, Uint32 line,
@@ -4921,6 +4933,7 @@
   }
 }
 
+#if _NODE_BITMASK_SIZE != _NDB_NODE_BITMASK_SIZE
 void
 Qmgr::computeArbitNdbMask(NdbNodeBitmask& aMask)
 {
@@ -4935,7 +4948,7 @@
     }
   }
 }
-
+#endif
 /**
  * Report arbitration event.  We use arbitration signal format
  * where sender (word 0) is event type.

--- 1.10/storage/ndb/src/kernel/vm/VMSignal.hpp	2007-01-17 16:27:41 +01:00
+++ 1.11/storage/ndb/src/kernel/vm/VMSignal.hpp	2007-02-07 13:53:51 +01:00
@@ -33,7 +33,9 @@
   NodeReceiverGroup();
   NodeReceiverGroup(Uint32 blockRef);
   NodeReceiverGroup(Uint32 blockNo, const NodeBitmask &);
+#if _NODE_BITMASK_SIZE != _NDB_NODE_BITMASK_SIZE
   NodeReceiverGroup(Uint32 blockNo, const NdbNodeBitmask &);
+#endif
   NodeReceiverGroup(Uint32 blockNo, const class SignalCounter &);
   
   NodeReceiverGroup& operator=(BlockReference ref);
@@ -190,6 +192,7 @@
   m_nodes = nodes;
 }
 
+#if _NODE_BITMASK_SIZE != _NDB_NODE_BITMASK_SIZE
 inline
 NodeReceiverGroup::NodeReceiverGroup(Uint32 blockNo, 
 				     const NdbNodeBitmask & nodes)
@@ -197,7 +200,7 @@
   m_block = blockNo;
   m_nodes = nodes;
 }
-
+#endif
 #include "SignalCounter.hpp"
 
 inline
Thread
bk commit into 5.1 tree (mikron:1.2412)mikael7 Feb