| Bug #48528 | Unable to use 7.0 ndbapi/mysqld with 6.3 data-nodes | ||
|---|---|---|---|
| Submitted: | 4 Nov 12:08 | Modified: | 23 Nov 17:02 |
| Reporter: | Jonas Oreland | ||
| Status: | Documenting | ||
| Category: | Server: Cluster | Severity: | S3 (Non-critical) |
| Version: | mysql-5.1-telco-7.0 | OS: | Any |
| Assigned to: | Frazer Clement | Target Version: | |
| Triage: | Triaged: D5 (Feature request) / R2 (Low) / E3 (Medium) | ||
[4 Nov 12:08]
Jonas Oreland
[12 Nov 18:10]
Frazer Clement
Is the requirement that 7.0 API can work with
a) 7.0 MGMD and 6.3 NDBD nodes
b) Both 6.3 / 7.0 MGMD and 6.3 NDBD nodes
a) Requires mostly NDBAPI fixes
API sends short TCKEY/INDX/SCANTAB REQ signals
Small fix to Event Operation setup
...
b) Requires some as-yet-unknown fix to MGMAPI to avoid time out when retrieving config.
I recall some use cases where one of two hosts with both MGMD and MySQLD was upgraded in
a single step. This would require the upgraded 7.0 MySQLD to be able to talk to the
existing 6.3 MGMD which currently times out when retrieving config.
[12 Nov 18:33]
Jonas Oreland
start with a) and i'll check if b) also is required... in fact I think then b) should be separate bug-report updated title to reflect this
[16 Nov 23:29]
Frazer Clement
Proposed patch.
Attachment: bug48528.patch (text/x-patch), 25.78 KiB.
[16 Nov 23:30]
Frazer Clement
Patch adds support for 7.0 + NdbApi nodes connecting to a Cluster with :
- 7.0 MGMD node
- 1 or more 6.3 API nodes
Limitations :
- 6.3 MGMD node not supported
(Could probably be alleviated with further work)
- 7.0 specific features must not be used until all data nodes are at version 7.0.
- Backup with Snapshot Start
- Online add node
- Online table repartitioning
- 7.0 MySQLD API nodes cannot perform DDL
- DDL is enabled when all connected NDBD nodes are at least version 7.0.0
- Note that 6.3 MySQLD API nodes can continue to perform DDL while the 'Master' node
is
at version 6.3. An Ndbd node restart could result in the 'Master' node being at
version
7.0.X + while another Ndbd is at version 6.3.Y. In this situation, no DDL can be
performed
from any API node as the 'Master' is not at version 6.3.Y, and the cluster contains
nodes
which are not at version 7.0.X.
Details
- NdbApi optionally send short TCKEYREQ, TCINDXREQ, SCANTABREQ requests.
Will send them to Ndbd nodes at version <= 7.0.0, or if forceShortRequests is set.
forceShortRequests is set by environment variable (NDB_FORCE_SHORT_REQUESTS=Y) or
internal method : storage/ndb/src/ndbapi/NdbImpl::setForceShortRequests()
- Some extra handling for Api-received signals modified in 7.0
GETTABINFOREF
SUB_START_CONF
- Added new --forceshortreqs option to NDBT_Testsuite options.
Added three new testcase invocations with --forceshortreqs, covering PK, unique
index ops and index scans.
- Added 1 line fix to ha_ndbcluster::alter_table_phase1() to ensure failure starting
schema transactions is handled correctly.
Testing
- Using NDB_FORCE_SHORT_REQUESTS, all Ndb testcases pass in 7.0
- A selection of 7.0 NdbApi tests and manual MySQLD tests pass when
connected to a 6.3 Cluster.
[18 Nov 11:06]
Frazer Clement
New patch with MTR testcase and daily-basic.txt mods.
Attachment: bug48528-2.patch (text/x-patch), 31.37 KiB.
[18 Nov 12:05]
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/90834 3238 Frazer Clement 2009-11-18 Bug#48528 Unable to use 7.0 ndbapi/mysqld with 6.3 data-nodes added: mysql-test/suite/ndb/r/ndb_short_sigs.result mysql-test/suite/ndb/t/ndb_short_sigs.cnf mysql-test/suite/ndb/t/ndb_short_sigs.test modified: storage/ndb/include/kernel/signaldata/GetTabInfo.hpp storage/ndb/include/ndb_version.h.in storage/ndb/include/ndbapi/NdbOperation.hpp storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp storage/ndb/src/ndbapi/NdbImpl.hpp storage/ndb/src/ndbapi/NdbOperationExec.cpp storage/ndb/src/ndbapi/NdbScanOperation.cpp storage/ndb/src/ndbapi/Ndbinit.cpp storage/ndb/src/ndbapi/TransporterFacade.hpp storage/ndb/src/ndbapi/ndberror.c storage/ndb/test/include/NDBT_Test.hpp storage/ndb/test/run-test/daily-basic-tests.txt storage/ndb/test/src/CMakeLists.txt storage/ndb/test/src/Makefile.am storage/ndb/test/src/NDBT_Test.cpp
[18 Nov 13:53]
Bugs System
Pushed into 5.1.39-ndb-7.0.10 (revid:frazer@mysql.com-20091118110502-9yvuwos7r1ble8k7) (version source revid:frazer@mysql.com-20091118110502-9yvuwos7r1ble8k7) (merge vers: 5.1.39-ndb-7.0.10) (pib:13)
[18 Nov 13:53]
Bugs System
Pushed into 5.1.39-ndb-7.1.0 (revid:frazer@mysql.com-20091118125128-z1o7fldjkcl1k86n) (version source revid:frazer@mysql.com-20091118125128-z1o7fldjkcl1k86n) (merge vers: 5.1.39-ndb-7.1.0) (pib:13)
