Announcing CUBRID 9.1 stable release with big improvements
We released CUBRID 9.0 beta version in October last year. Since then we have been working hard on stabilizing the beta features, fixing bugs, and improving the overall engine performance. Today I am excited to announce the immediate availability of the CUBRID 9.1 stable release. You can download CUBRID Database Server from http://www.cubrid.org/?mid=downloads&item=cubrid&os=detect&cubrid=9.1.0.
I would also like to announce that we will give a talk about CUBRID Database Sharding at Percona MySQL Conference on April 24, 2013, in Santa Clara, CA. Join us there to meet CUBRID Engineers and get the first-hand insight into the new CUBRID 9.1.
Below I will provide an overview of the latest changes and improvements in CUBRID 9.1.
Overview
CUBRID 9.1 is an upgraded and stabilized version of CUBRID 9.0 Beta. To learn more about the biggest features introduced in 9.x family, refer to 9.0 official announcement. Issues found in the 9.0 Beta version have been fixed and stabilized in this new 9.1 stable release. With a variety of query-related functionalities, CUBRID 9.1 offers improved query processing performance as well as improved query optimization. In addition, its multi-language related functionalities have been further improved. This new 9.1 release is accompanied by new CUBRID Tools and Drivers releases.
Backward Compatibility
Database compatibility
As a database volume of CUBRID 9.1 is not compatible with the database of CUBRID 9.0 Beta, users of CUBRID 9.0 Beta or previous versions should migrate their database. We have created a migration instructions which you can find in Upgrade section of the Release Notes.
Driver compatibility
The JDBC and CCI driver of CUBRID 9.1 are compatible with CUBRID 9.0 Beta and CUBRID 2008 R4.x version. Some features that are fixed and improved for 9.1 are not supported when 9.1 drivers connect to the previous versions.
Major enhancements
New SQL functions and index hints
- New SQL analytics functions like
NTILE,LEADandLAGhave been introduced in CUBRID 9.1. - WIDTH_BUCKET new SQL numeric function is also introduced.
TRUNCandROUNDfunctions now also accept the date types.- New SQL Hints:
- Support a new index hint clause.
- SQL hints for Multi
UPDATEandDELETEstatement. - SQL hints for
MERGEstatement.
Performance improvements and optimizations
- The performance of data replication in HA environment has been significantly improved in CUBRID 9.1.

- Improved multi-key range optimization.
- Enhanced optimization of
ORDER BYandGROUP BYclause. - Improved analytic function performance.
- Improved performance of
INSERT ON DUPLICATE KEY UPDATEandREPLACEstatement. - Improved search and delete performance for non-unique indexes with many duplicate keys.
- Improved delete performance when insert and delete operations are repeated.
- The overall performance of
SELECToperations has been improved by nearly 20%.
- Based on the results obtained from the basic performance test, we have found that the performance of
INSERT,DELETE, andUPDATEoperations are almost same as that of 9.0 Beta.
Multi-language support
- In CUBRID 9.1 we now support collation for tables.
SHOW COLLATIONstatement and newCHARSET,COLLATION, andCOERCIBILITYfunctions are now supported.- Support collation with expansion which sorts French with backward accent order.
- Improved and fixed restrictions and issues of 9.0 Beta version.
CUBRID SHARD
- We have added
cubrid shard getidcommand to verify the shard ID of the shard key. - CUBRID SHARD is now available on Windows as well.
Administration utility
cubrid applyinfoutility now also shows information about the replication delay.cubrid killtranutility now has the ability to show the query execution information of each transaction as well as the ability to remove transactions which executes a designated SQL.- When a query timeout occurs, added a functionality to log the query execution information to the server error log and the CAS log files.
Behavioral Changes
CUBRID_LANGenvironment variable is no longer used.CUBRID_CHARSETenvironment variable which sets the database charset instead ofCUBRID_LANGand theCUBRID_MSG_LANGenvironment variable which sets the charset for utility and error messages.- Change array execution functions such as
cci_execute_array,cci_execute_batchfunction andStatement.executeBatchandPreparedStatement.executeBatchmethod of JDBC to commit whenever it executes an individual query under auto commit mode, while the previous versions commit once for entire execution. - Change the behavior of
cci_execute_array,cci_execute_batchandcci_execute_resultfunction when an error occurs while they are executing multiple statements. These functions now continue to execute the entire given queries while the previous versions stop execution and return an error. Users can access the results and identify the errors withCCI_QUERY_RESULT_*macros. OFFis no longer supported forKEEP_CONNECTIONbroker parameter.SELECT_AUTO_COMMITbroker parameter is no longer supported.- Change the allowed value range of a broker parameter
APPL_SERVER_MAX_SIZE_HARD_LIMITto1 - 2,097,151. - Change the default value of a broker parameter
SQL_LOG_MAX_SIZEfrom100 MB to 10 MB. - Change the behavior of the
call_stack_dump_activation_listparameter.
Numerous Improvements and Bug Fixes
- Fix many critical issues of the previous versions.
- Improve of fix many issues of stability, SQL, partitioning, HA, Sharding, utilities, and drivers.
For more details on changes, see the Release Notes in English or Korean.
So far CUBRID 9.1 is our biggest release which we would like you to try. In fact we have released new improved drivers for Node.js, PHP, PDO, Python, Perl, JDBC, ODBC, OLEDB, ADO.NET, and C. So you should definitely try the new, more performant and stable CUBRID 9.1 Database.
If you have any questions, feel free to leave your comment below.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)





