MySQL64bitARC

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:
5 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 Micro 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      UnCommited       LSARC/2007/684
MySQL 5.0     Commited         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/]

7. Resources and Schedule
7.4. Steering Committee requested information
7.4.1. Consolidation C-team Name:
sfw
7.5. ARC review type: FastTrack
7.6. ARC Exposure: open

---
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


Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

Sign up or Log in to add a comment or watch this page.


The individuals who post here are part of the extended Sun Microsystems community and they might not be employed or in any way formally affiliated with Sun Microsystems. The opinions expressed here are their own, are not necessarily reviewed in advance by anyone but the individual authors, and neither Sun nor any other party necessarily agrees with them.

Copyright 1994-2009 Sun Microsystems, Inc.
Powered by Atlassian Confluence
Sun Guidelines on Public Discourse Privacy Policy Terms of Use Trademarks Site Map Employment Investor Relations Contact