Skip to content

Commit 8f957a2

Browse files
author
tomas@poseidon.mysql.com
committed
Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1-new-ndb
into poseidon.mysql.com:/home/tomas/mysql-5.1-telco
2 parents 4ddf45b + 139c52d commit 8f957a2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+839
-273
lines changed

cluster_change_hist.txt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
2+
mysql-5.1.14-ndb-6.1.1
3+
4+
- added extra version info to API to enable support for non-supported online
5+
software upgrade
6+
- 255 api support
7+
8+
---------------------------------------------------
9+
10+
mysql-5.1.14-ndb-6.1.0
11+
12+
bug#25059 - Unique index lookup execute(Commit) on non existing tuple can lead to 4012
13+
bug#25090 - Incorrect handling of execute(Commit, AO_IgnoreError), can lead to DBCT crash
14+
bug#19956 - Problems with VARCHAR primary key and BLOB fields
15+
bug#24949 - Pulling cable from _last_ db-node can cause 6min timeout in api
16+
bug#25001 - MEDIUMTEXT column not stored on disk
17+
bug#24664 - Rare problem in LCP, can lead to unability to restart
18+
bug#24917 - Makeing node restart with "newly" dropped disk table can cause failure during restart
19+
bug#24914 - Start Transaction with hint guessed incorrectly
20+
bug#21948 - Repeated create/drop/truncate(DD) together with restarts can cause SR failure
21+
bug#17605 - DD Extents are not available until after LCP
22+
bug#22773 - NDB_LE_Connected sent when it should be NDB_LE_Disconnected
23+
bug#24166 - SR-crash if DD and hidden key
24+
25+
* add support for periodic mem-reporting, config.ini parameter "MemReportFrequency" which is specified in seconds
26+

config/ac-macros/ha_ndbcluster.m4

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,10 @@ dnl ---------------------------------------------------------------------------
22
dnl Macro: MYSQL_CHECK_NDBCLUSTER
33
dnl ---------------------------------------------------------------------------
44

5-
NDB_VERSION_MAJOR=`echo $VERSION | cut -d. -f1`
6-
NDB_VERSION_MINOR=`echo $VERSION | cut -d. -f2`
7-
NDB_VERSION_BUILD=`echo $VERSION | cut -d. -f3 | cut -d- -f1`
8-
NDB_VERSION_STATUS=`echo $VERSION | cut -d- -f2`
9-
# if there was now -suffix, $NDB_VERSION_STATUS will be the same as $VERSION
10-
if test "$NDB_VERSION_STATUS" = "$VERSION"
11-
then
12-
NDB_VERSION_STATUS=""
13-
fi
5+
NDB_MYSQL_VERSION_MAJOR=`echo $VERSION | cut -d. -f1`
6+
NDB_MYSQL_VERSION_MINOR=`echo $VERSION | cut -d. -f2`
7+
NDB_MYSQL_VERSION_BUILD=`echo $VERSION | cut -d. -f3 | cut -d- -f1`
8+
149
TEST_NDBCLUSTER=""
1510

1611
dnl for build ndb docs
@@ -294,6 +289,17 @@ AC_DEFUN([MYSQL_SETUP_NDBCLUSTER], [
294289
AC_DEFINE_UNQUOTED([NDB_VERSION_STATUS], ["$NDB_VERSION_STATUS"],
295290
[NDB status version])
296291
292+
293+
AC_SUBST(NDB_MYSQL_VERSION_MAJOR)
294+
AC_SUBST(NDB_MYSQL_VERSION_MINOR)
295+
AC_SUBST(NDB_MYSQL_VERSION_BUILD)
296+
AC_DEFINE_UNQUOTED([NDB_MYSQL_VERSION_MAJOR], [$NDB_MYSQL_VERSION_MAJOR],
297+
[MySQL major version])
298+
AC_DEFINE_UNQUOTED([NDB_MYSQL_VERSION_MINOR], [$NDB_MYSQL_VERSION_MINOR],
299+
[MySQL minor version])
300+
AC_DEFINE_UNQUOTED([NDB_MYSQL_VERSION_BUILD], [$NDB_MYSQL_VERSION_BUILD],
301+
[MySQL build version])
302+
297303
AC_SUBST(ndbcluster_includes)
298304
AC_SUBST(ndbcluster_libs)
299305
AC_SUBST(ndbcluster_system_libs)

configure.in

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,14 @@ AC_INIT(sql/mysqld.cc)
77
AC_CANONICAL_SYSTEM
88
# The Docs Makefile.am parses this line!
99
# remember to also change ndb version below and update version.c in ndb
10-
AM_INIT_AUTOMAKE(mysql, 5.1.15-beta)
10+
AM_INIT_AUTOMAKE(mysql, 5.1.14-ndb-6.1.1)
1111
AM_CONFIG_HEADER(config.h)
1212

13+
NDB_VERSION_MAJOR=6
14+
NDB_VERSION_MINOR=1
15+
NDB_VERSION_BUILD=1
16+
NDB_VERSION_STATUS="-beta"
17+
1318
PROTOCOL_VERSION=10
1419
DOT_FRM_VERSION=6
1520
# See the libtool docs for information on how to do shared lib versions.

storage/ndb/include/debugger/EventLogger.hpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class EventLoggerBase {
3737
* threshold - is in range [0-15]
3838
* severity - DEBUG to ALERT (Type of log message)
3939
*/
40-
typedef void (* EventTextFunction)(char *,size_t,const Uint32*);
40+
typedef void (* EventTextFunction)(char *,size_t,const Uint32*, Uint32 len);
4141

4242
struct EventRepLogLevelMatrix {
4343
Ndb_logevent_type eventType;
@@ -131,7 +131,7 @@ class EventLogger : public EventLoggerBase, public Logger
131131
* @param theData the event data.
132132
* @param nodeId the node id of event origin.
133133
*/
134-
virtual void log(int, const Uint32*, NodeId = 0,const class LogLevel * = 0);
134+
virtual void log(int, const Uint32*, Uint32 len, NodeId = 0,const class LogLevel * = 0);
135135

136136

137137
/**
@@ -144,7 +144,8 @@ class EventLogger : public EventLoggerBase, public Logger
144144
*/
145145
static const char* getText(char * dst, size_t dst_len,
146146
EventTextFunction textF,
147-
const Uint32* theData, NodeId nodeId = 0);
147+
const Uint32* theData, Uint32 len,
148+
NodeId nodeId = 0);
148149

149150
/**
150151
* Returns the log level that is used to filter an event. The event will not

storage/ndb/include/kernel/GlobalSignalNumbers.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ extern const GlobalSignalNumber NO_OF_SIGNAL_NAMES;
182182
#define GSN_CNTR_START_REP 119
183183
/* 120 not unused */
184184
#define GSN_ROUTE_ORD 121
185-
/* 122 unused */
185+
#define GSN_NODE_VERSION_REP 122
186186
/* 123 unused */
187187
/* 124 unused */
188188
#define GSN_CHECK_LCP_STOP 125

storage/ndb/include/kernel/NodeBitmask.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
*
2828
* Note that this is used in a lot of signals
2929
*/
30-
#define _NODE_BITMASK_SIZE 2
30+
#define _NODE_BITMASK_SIZE 8
3131

3232
/**
3333
* No of 32 bits words needed to store a node bitmask

storage/ndb/include/kernel/NodeInfo.hpp

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ class NodeInfo {
3434
};
3535
NodeType getType() const;
3636

37-
Uint32 m_version; ///< Node version
38-
Uint32 m_signalVersion; ///< Signal version
37+
Uint32 m_version; ///< Ndb version
38+
Uint32 m_mysql_version; ///< MySQL version
3939
Uint32 m_type; ///< Node type
4040
Uint32 m_connectCount; ///< No of times connected
4141
bool m_connected; ///< Node is connected
@@ -48,7 +48,7 @@ class NodeInfo {
4848
inline
4949
NodeInfo::NodeInfo(){
5050
m_version = 0;
51-
m_signalVersion = 0;
51+
m_mysql_version = 0;
5252
m_type = INVALID;
5353
m_connectCount = 0;
5454
m_heartbeat_cnt= 0;
@@ -82,11 +82,21 @@ operator<<(NdbOut& ndbout, const NodeInfo & info){
8282
break;
8383
}
8484

85-
ndbout << " version: " << info.m_version
86-
<< " sig. version; " << info.m_signalVersion
85+
ndbout << " ndb version: " << info.m_version
86+
<< " mysql version; " << info.m_mysql_version
8787
<< " connect count: " << info.m_connectCount
8888
<< "]";
8989
return ndbout;
9090
}
9191

92+
struct NodeVersionInfo
93+
{
94+
STATIC_CONST( DataLength = 6 );
95+
struct
96+
{
97+
Uint32 m_min_version;
98+
Uint32 m_max_version;
99+
} m_type [3]; // Indexed as NodeInfo::Type
100+
};
101+
92102
#endif

storage/ndb/include/kernel/NodeState.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ class NodeState {
9999
/**
100100
* Length in 32-bit words
101101
*/
102-
STATIC_CONST( DataLength = 8 + NdbNodeBitmask::Size );
102+
STATIC_CONST( DataLength = 8 + NodeBitmask::Size );
103103

104104
/**
105105
* Constructor(s)
@@ -147,7 +147,7 @@ class NodeState {
147147
Uint32 singleUserMode;
148148
Uint32 singleUserApi; //the single user node
149149

150-
BitmaskPOD<NdbNodeBitmask::Size> m_connected_nodes;
150+
BitmaskPOD<NodeBitmask::Size> m_connected_nodes;
151151

152152
void setDynamicId(Uint32 dynamic);
153153
void setNodeGroup(Uint32 group);

storage/ndb/include/kernel/ndb_limits.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
* since NodeId = 0 can not be used
2626
*/
2727
#define MAX_NDB_NODES 49
28-
#define MAX_NODES 64
28+
#define MAX_NODES 256
2929
#define UNDEF_NODEGROUP 0xFFFF
3030

3131
/**

storage/ndb/include/kernel/signaldata/ApiRegSignalData.hpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,12 @@ class ApiRegReq {
3030
friend class Qmgr;
3131

3232
public:
33-
STATIC_CONST( SignalLength = 2 );
33+
STATIC_CONST( SignalLength = 3 );
3434

3535
private:
3636
Uint32 ref;
3737
Uint32 version; // Version of API node
38+
Uint32 mysql_version;
3839
};
3940

4041
/**
@@ -52,7 +53,7 @@ class ApiRegRef {
5253
friend class ClusterMgr;
5354

5455
public:
55-
STATIC_CONST( SignalLength = 3 );
56+
STATIC_CONST( SignalLength = 4 );
5657

5758
enum ErrorCode {
5859
WrongType = 1,
@@ -62,6 +63,7 @@ class ApiRegRef {
6263
Uint32 ref; // Qmgr ref
6364
Uint32 version; // Version of NDB node
6465
Uint32 errorCode;
66+
Uint32 mysql_version;
6567
};
6668

6769
/**
@@ -79,12 +81,14 @@ class ApiRegConf {
7981
friend class ClusterMgr;
8082

8183
public:
82-
STATIC_CONST( SignalLength = 3 + NodeState::DataLength );
84+
STATIC_CONST( SignalLength = 5 + NodeState::DataLength );
8385
private:
8486

8587
Uint32 qmgrRef;
8688
Uint32 version; // Version of NDB node
8789
Uint32 apiHeartbeatFrequency;
90+
Uint32 mysql_version;
91+
Uint32 minDbVersion;
8892
NodeState nodeState;
8993
};
9094

storage/ndb/include/kernel/signaldata/ApiVersion.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,11 @@ class ApiVersionReq {
2727
*/
2828
friend class Qmgr;
2929
public:
30-
STATIC_CONST( SignalLength = 3 );
30+
STATIC_CONST( SignalLength = 4 );
3131
Uint32 senderRef;
3232
Uint32 nodeId; //api node id
3333
Uint32 version; // Version of API node
34-
35-
34+
Uint32 mysql_version; // MySQL version
3635
};
3736

3837

@@ -48,11 +47,12 @@ class ApiVersionConf {
4847
*/
4948
friend class MgmtSrv;
5049
public:
51-
STATIC_CONST( SignalLength = 4 );
50+
STATIC_CONST( SignalLength = 5 );
5251
Uint32 senderRef;
5352
Uint32 nodeId; //api node id
5453
Uint32 version; // Version of API node
5554
Uint32 inet_addr;
55+
Uint32 mysql_version; // MySQL version
5656
};
5757

5858
#endif

storage/ndb/include/kernel/signaldata/CheckNodeGroups.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class CheckNodeGroups {
3838
};
3939

4040
Uint32 nodeId; // nodeId input for GetNodeGroupMembers
41-
NodeBitmask mask; /* set of NDB nodes, input for ArbitCheck,
41+
NdbNodeBitmask mask; /* set of NDB nodes, input for ArbitCheck,
4242
* output for GetNodeGroupMembers
4343
*/
4444
enum RequestType {
@@ -54,7 +54,7 @@ class CheckNodeGroups {
5454
Partitioning = 3 // possible network partitioning
5555
};
5656

57-
STATIC_CONST( SignalLength = 3 + NodeBitmask::Size );
57+
STATIC_CONST( SignalLength = 3 + NdbNodeBitmask::Size );
5858
};
5959

6060
#endif

storage/ndb/include/kernel/signaldata/CmRegSignalData.hpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,13 @@ class CmRegReq {
2929
friend class Qmgr;
3030

3131
public:
32-
STATIC_CONST( SignalLength = 5 + NdbNodeBitmask::Size );
32+
STATIC_CONST( SignalLength = 6 + NdbNodeBitmask::Size );
3333
private:
3434

3535
Uint32 blockRef;
3636
Uint32 nodeId;
3737
Uint32 version; // See ndb_version.h
38+
Uint32 mysql_version;
3839

3940
Uint32 start_type; // As specified by cmd-line or mgm, NodeState::StartType
4041
Uint32 latest_gci; // 0 means no fs
@@ -52,12 +53,13 @@ class CmRegConf {
5253
friend class Qmgr;
5354

5455
public:
55-
STATIC_CONST( SignalLength = 4 + NdbNodeBitmask::Size );
56+
STATIC_CONST( SignalLength = 5 + NdbNodeBitmask::Size );
5657
private:
5758

5859
Uint32 presidentBlockRef;
5960
Uint32 presidentNodeId;
6061
Uint32 presidentVersion;
62+
Uint32 presidentMysqlVersion;
6163

6264
/**
6365
* The dynamic id that the node reciving this signal has
@@ -122,7 +124,7 @@ class CmAdd {
122124
friend class Qmgr;
123125

124126
public:
125-
STATIC_CONST( SignalLength = 3 );
127+
STATIC_CONST( SignalLength = 4 );
126128

127129
private:
128130
enum RequestType {
@@ -134,6 +136,7 @@ class CmAdd {
134136
Uint32 requestType;
135137
Uint32 startingNodeId;
136138
Uint32 startingVersion;
139+
Uint32 startingMysqlVersion;
137140
};
138141

139142
class CmAckAdd {
@@ -158,7 +161,7 @@ class CmNodeInfoReq {
158161
friend class Qmgr;
159162

160163
public:
161-
STATIC_CONST( SignalLength = 3 );
164+
STATIC_CONST( SignalLength = 4 );
162165

163166
private:
164167
/**
@@ -167,6 +170,7 @@ class CmNodeInfoReq {
167170
Uint32 nodeId;
168171
Uint32 dynamicId;
169172
Uint32 version;
173+
Uint32 mysql_version;
170174
};
171175

172176
class CmNodeInfoRef {
@@ -194,12 +198,13 @@ class CmNodeInfoConf {
194198
friend class Qmgr;
195199

196200
public:
197-
STATIC_CONST( SignalLength = 3 );
201+
STATIC_CONST( SignalLength = 4 );
198202

199203
private:
200204
Uint32 nodeId;
201205
Uint32 dynamicId;
202206
Uint32 version;
207+
Uint32 mysql_version;
203208
};
204209

205210
#endif

storage/ndb/include/kernel/signaldata/CntrMasterConf.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ class CntrMasterConf {
3636
*/
3737

3838
public:
39-
STATIC_CONST( SignalLength = 1 + NodeBitmask::Size );
39+
STATIC_CONST( SignalLength = 1 + NdbNodeBitmask::Size );
4040
private:
4141

4242
Uint32 noStartNodes;
43-
Uint32 theNodes[NodeBitmask::Size];
43+
Uint32 theNodes[NdbNodeBitmask::Size];
4444
};
4545

4646
#endif

0 commit comments

Comments
 (0)