I am sponsoring the following project for Jan Berg and the database team.
Timeout set to March 4, 2008. Materials below and in the case directory.
Template Version: @(#)sac_nextcase 1.64 07/13/07 SMI
This information is Copyright 2008 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
Including MySQL 5.0 64bit and connectors with Solaris
1.2. Name of Document Author/Supplier:
Author: Jan Berg
1.3 Date of This Document:
25 February, 2008
4. Technical Description
1. Introduction
1.1. Project/Component Working Name:
Including MySQL 5.0 64bit and connectors with Solaris
1.2. Name of Document Author/Supplier:
Author: Jan Berg
1.3 Date of This Document:
25 February, 2008
1.4 Description:
This FastTrack delivers MySQL 5.0 64 bit and connectors as a component in
OpenSolaris sfw consolidation.
MySQL 32 bit server,clients and c-api with man pages and testsuites has
already been integrated into OpenSolaris.
With this Fasttrack we want to integrate also 64 bit binaries and libraries
into OpenSolaris. We also want to integrate the JDBC and ODBC Connectors.
This case seeks Minor Release Binding.
1.5 Previous Relevant ARC cases
LSARC 2007/608 - Including MySQL 5.0 with Solaris
2. Technical issues
2.1 32 and 64 bit architectures.
MySQL is already delivered with 32 bit architecture for
binaries. We will now deliver 64 bit. The Connector/ODBC
will also be delivered in 64 bit.
2.2 APIs
With this fasttrack we will also deliver the MySQL JDBC and ODBC Connectors.
JDBC Connector 5.1.5 is a JDBC 4 compliant JDBC Driver (type 4) for MySQL.
ODBC Connector 3.51.23 is based on ODBC version 3.5.
Note also that the Connectors are independent of the MySQL server
version in this or the previous ARC case. They should be both
backward and forward compatible.
2.3 Directory Naming and Structure
The directory structure for 64 bit:
/usr/mysql/5.0
/bin/64 softlink to appropriate 64 bit directory
/bin/amd64 amd only 64bit binaries
/bin/sparcv9 sparc only 64bit binaries
/lib/64 softlink to appropriate 64 bit directory
/lib/amd64 amd only 64bit libraries
/lib/sparcv9 sparc only 64bit libraries
The directory structure for Connectors:
/usr/mysql/connectors
/odbc/3.5/bin 32bit ODBC binaries
/odbc/3.5/64 softlink to appropriate 64 bit
directory
/odbc/3.5/bin/amd64 amd only 64bit ODBC binaries
/odbc/3.5/bin/sparcv9 sparc only 64bit ODBC binaries
/odbc/3.5/lib 32bit ODBC binaries
/odbc/3.5/lib/64 softlink to appropriate 64 bit
directory
/odbc/3.5/lib/amd64 amd only 64bit ODBC binaries
/odbc/3.5/lib/sparcv9 sparc only 64bit ODBC binaries
/odbc/3.5/doc ODBC documentation and example
config
/jdbc/5.1/ JDBC Driver and documentation
See Appendix A for detailed file-listing.
2.4 SMF
We will use the already delivered SMF metafile as well as a
SMF startup script. We will add a property, called enable_64bit, to
the SMF service for choosing between 32 and 64 bit.
Default will always be 32 bit.
It should be noted that, when switching between 32bit and 64bit server
using the same data-files, all the current major storage engines (with
one exception) are architecture neutral, both in endian-ness and bit
size.
You should be able to copy a 64-bit or 32-bit DB either way,
and even between platforms without problems for MyISAM, InnoDB and NDB.
For other engines it doesn't matter (CSV, MEMORY, MERGE, BLACKHOLE and
FEDERATED) either the engine doesn't have a disk storage format or
the format they use is text based (CSV) or based on
MyISAM (MERGE; and therefore not an issue). The only exception is
Falcon, which is only available in MySQL 6.0.
It is generally recommended from MySQL that a dump and reload of
data for absolute compatibility for any engine and major migration.
3. MySQL Documentation
Will be adding documentation how to enable 64 bit to the existing
documentation. Documentation for Connector/JDBC and Connector/ODBC
will be added.
4. Packaging and Delivery
We propose to have the MySQL 64bit and connectors under the following packages:
SUNWmysql5u - [usr] Server package (existing, but will be adding 64
bit binaries/libraries and updated documentation)
SUNWmysql5jdbc - New package for the JDBC Connector
SUNWmysql3odbc - New package for ODBC Connector
Multiple versions can coexist, and are distinguished by the
version (5 for version 5.0.*). The ODBC driver is version 3.51.x
and does not follow the usual MySQL version numbering. Both Connectors
should work with different versions of MySQL, but newer versions (post 5.0)
of the server might have new functionality not provided by these
versions of the Connectors.
5. MySQL Interfaces
5.1. Interface Stability
MySQL is a mature product and the interfaces are stable and has
been available for a long time in the open source community as
well as an established product. As a database MySQL also supports
the standard database interfaces (SQL92,SQL99,SQL2003).
The MySQL JDBC and ODBC Connectors follow the JDBC (including version 4)
and ODBC (version 3.5) standards and hence need to be stable.
5.2. Imported Interfaces
MySQL 64bit and connectors imports and make use of interfaces from
NAME STABILITY NOTES
UnixODBC Uncommitted LSARC/2007/684
MySQL 5.0 Committed LSARC/2007/608
UnixODBC is used as the driver manager for Connector/ODBC.
Connector/J is implementing JSR 221. And this ARC
case is adding 64bit to the 32bit MySQL 5.0 ARC case.
5.3. Exported Interfaces
NAME STABILITY NOTES
MySQL Connector/J Committed JDBC Client API
MySQL Connector/ODBC Committed ODBC Client API
svc:/application/database/mysql:version_50
Committed FMRI adding property
enable_64bit
The interfaces have existed for a long time in the MySQL community, and
the interfaces are also following the JDBC (including 4.0) and
ODBC 3.5 standards. For the 5.0 release we don't expect changes in the
interfaces. The SMF service will be updated to set a property to enable
64 bit server. Default will be 32 bit.
6. References
[1] http://www.mysql.org/
---
Appendix A - file listing of added files:
JDBC Driver:
/usr/mysql/connectors/jdbc/5.1/mysql-connector-java-5.1.5-bin.jar
/usr/mysql/connectors/jdbc/5.1/docs/cj-news.html
/usr/mysql/connectors/jdbc/5.1/docs/connector-j-reference.html
/usr/mysql/connectors/jdbc/5.1/docs/connector-j-versions.html
/usr/mysql/connectors/jdbc/5.1/docs/mysql-html.css
/usr/mysql/connectors/jdbc/5.1/docs/connector-j-examples.html
/usr/mysql/connectors/jdbc/5.1/docs/connector-j-support.html
/usr/mysql/connectors/jdbc/5.1/docs/connector-j.html
/usr/mysql/connectors/jdbc/5.1/docs/connector-j-installing.html
/usr/mysql/connectors/jdbc/5.1/docs/connector-j-usagenotes.html
/usr/mysql/connectors/jdbc/5.1/docs/index.html
ODBC Driver:
/usr/mysql/connectors/odbc/3.51/bin/myodbc3i
/usr/mysql/connectors/odbc/3.51/bin/myodbc3m
/usr/mysql/connectors/odbc/3.51/bin/64 ->
/usr/mysql/connectors/odbc/3.51/bin/sparcv9
/usr/mysql/connectors/odbc/3.51/bin/sparcv9/myodbc3i
/usr/mysql/connectors/odbc/3.51/bin/sparcv9/myodbc3m
/usr/mysql/connectors/odbc/3.51/lib/libmyodbc3_r-3.51.20.so
/usr/mysql/connectors/odbc/3.51/lib/libmyodbc3_r.so
/usr/mysql/connectors/odbc/3.51/lib/libmyodbc3S-3.51.20.so
/usr/mysql/connectors/odbc/3.51/lib/libmyodbc3S.so
/usr/mysql/connectors/odbc/3.51/lib/libmyodbc3-3.51.20.so
/usr/mysql/connectors/odbc/3.51/lib/libmyodbc3.so
/usr/mysql/connectors/odbc/3.51/lib/64 ->
/usr/mysql/connectors/odbc/3.51/lib/sparcv9
/usr/mysql/connectors/odbc/3.51/lib/sparcv9/libmyodbc3_r-3.51.20.so
/usr/mysql/connectors/odbc/3.51/lib/sparcv9/libmyodbc3_r.so
/usr/mysql/connectors/odbc/3.51/lib/sparcv9/libmyodbc3S-3.51.20.so
/usr/mysql/connectors/odbc/3.51/lib/sparcv9/libmyodbc3S.so
/usr/mysql/connectors/odbc/3.51/lib/sparcv9/libmyodbc3-3.51.20.so
/usr/mysql/connectors/odbc/3.51/lib/sparcv9/libmyodbc3.so
/usr/mysql/connectors/odbc/3.51/docs/README
/usr/mysql/connectors/odbc/3.51/docs/odbc.ini
/usr/mysql/connectors/odbc/3.51/docs/odbcinst.ini
64 bit files (sparcv9 listing only, exact same for amd64):
/usr/mysql/5.0/bin/64 ->
usr/mysql/5.0/bin/sparcv9
/usr/mysql/5.0/bin/sparcv9/comp_err
/usr/mysql/5.0/bin/sparcv9/mysql_convert_table_format
/usr/mysql/5.0/bin/sparcv9/mysql_upgrade_shell
/usr/mysql/5.0/bin/sparcv9/mysqldump
/usr/mysql/5.0/bin/sparcv9/ndb_cpcd
/usr/mysql/5.0/bin/sparcv9/ndb_show_tables
/usr/mysql/5.0/bin/sparcv9/innochecksum
/usr/mysql/5.0/bin/sparcv9/mysql_explain_log
/usr/mysql/5.0/bin/sparcv9/mysql_waitpid
/usr/mysql/5.0/bin/sparcv9/mysqldumpslow
/usr/mysql/5.0/bin/sparcv9/ndb_delete_all
/usr/mysql/5.0/bin/sparcv9/ndb_size.pl
/usr/mysql/5.0/bin/sparcv9/msql2mysql
/usr/mysql/5.0/bin/sparcv9/mysql_find_rows
/usr/mysql/5.0/bin/sparcv9/mysql_zap
/usr/mysql/5.0/bin/sparcv9/mysqlhotcopy
/usr/mysql/5.0/bin/sparcv9/ndb_desc
/usr/mysql/5.0/bin/sparcv9/ndb_test_platform
/usr/mysql/5.0/bin/sparcv9/my_print_defaults
/usr/mysql/5.0/bin/sparcv9/mysql_fix_extensions
/usr/mysql/5.0/bin/sparcv9/mysqlaccess
/usr/mysql/5.0/bin/sparcv9/mysqlimport
/usr/mysql/5.0/bin/sparcv9/ndb_drop_index
/usr/mysql/5.0/bin/sparcv9/ndb_waiter
/usr/mysql/5.0/bin/sparcv9/myisam_ftdump
/usr/mysql/5.0/bin/sparcv9/mysql_fix_privilege_tables
/usr/mysql/5.0/bin/sparcv9/mysqladmin
/usr/mysql/5.0/bin/sparcv9/mysqlmanager
/usr/mysql/5.0/bin/sparcv9/ndb_drop_table
/usr/mysql/5.0/bin/sparcv9/ndbd
/usr/mysql/5.0/bin/sparcv9/myisamchk
/usr/mysql/5.0/bin/sparcv9/mysql_install_db
/usr/mysql/5.0/bin/sparcv9/mysqlbinlog
/usr/mysql/5.0/bin/sparcv9/mysqlshow
/usr/mysql/5.0/bin/sparcv9/ndb_error_reporter
/usr/mysql/5.0/bin/sparcv9/perror
/usr/mysql/5.0/bin/sparcv9/myisamlog
/usr/mysql/5.0/bin/sparcv9/mysql_secure_installation
/usr/mysql/5.0/bin/sparcv9/mysqlbug
/usr/mysql/5.0/bin/sparcv9/mysqltest
/usr/mysql/5.0/bin/sparcv9/ndb_mgm
/usr/mysql/5.0/bin/sparcv9/replace
/usr/mysql/5.0/bin/sparcv9/myisampack
/usr/mysql/5.0/bin/sparcv9/mysql_setpermission
/usr/mysql/5.0/bin/sparcv9/mysqlcheck
/usr/mysql/5.0/bin/sparcv9/mysqltestmanager
/usr/mysql/5.0/bin/sparcv9/ndb_mgmd
/usr/mysql/5.0/bin/sparcv9/resolve_stack_dump
/usr/mysql/5.0/bin/sparcv9/mysql
/usr/mysql/5.0/bin/sparcv9/mysql_tableinfo
/usr/mysql/5.0/bin/sparcv9/mysqld
/usr/mysql/5.0/bin/sparcv9/mysqltestmanager-pwgen
/usr/mysql/5.0/bin/sparcv9/ndb_restore
/usr/mysql/5.0/bin/sparcv9/resolveip
/usr/mysql/5.0/bin/sparcv9/mysql_client_test
/usr/mysql/5.0/bin/sparcv9/mysql_tzinfo_to_sql
/usr/mysql/5.0/bin/sparcv9/mysqld_multi
/usr/mysql/5.0/bin/sparcv9/mysqltestmanagerc
/usr/mysql/5.0/bin/sparcv9/ndb_select_all
/usr/mysql/5.0/bin/sparcv9/mysql_config
/usr/mysql/5.0/bin/sparcv9/mysql_upgrade
/usr/mysql/5.0/bin/sparcv9/mysqld_safe
/usr/mysql/5.0/bin/sparcv9/ndb_config
/usr/mysql/5.0/bin/sparcv9/ndb_select_count
/usr/mysql/5.0/lib/sparcv9/mysql/libdbug.a
/usr/mysql/5.0/lib/sparcv9/mysql/libmysqlclient_r.so
/usr/mysql/5.0/lib/sparcv9/mysql/libmysqlclient.so
/usr/mysql/5.0/lib/sparcv9/mysql/libmysys.a
/usr/mysql/5.0/lib/sparcv9/mysql/libndbclient.so.2.0.0
/usr/mysql/5.0/lib/sparcv9/mysql/libmyisam.a
/usr/mysql/5.0/lib/sparcv9/mysql/libmysqlclient_r.so.15
/usr/mysql/5.0/lib/sparcv9/mysql/libmysqlclient.so.15
/usr/mysql/5.0/lib/sparcv9/mysql/libndbclient.a
/usr/mysql/5.0/lib/sparcv9/mysql/libmyisammrg.a
/usr/mysql/5.0/lib/sparcv9/mysql/libmysqlclient_r.so.15.0.0
/usr/mysql/5.0/lib/sparcv9/mysql/libmysqlclient.so.15.0.0
/usr/mysql/5.0/lib/sparcv9/mysql/libndbclient.so
/usr/mysql/5.0/lib/sparcv9/mysql/libmysqlclient_r.a
/usr/mysql/5.0/lib/sparcv9/mysql/libmysqlclient.a
/usr/mysql/5.0/lib/sparcv9/mysql/libmystrings.a
/usr/mysql/5.0/lib/sparcv9/mysql/libndbclient.so.2
6. Resources and Schedule
6.4. Steering Committee requested information
6.4.1. Consolidation C-team Name:
sfw
6.5. ARC review type: FastTrack
6.6. ARC Exposure: open