CUBRID 9.0: An Optimized Database for Web Apps
CUBRID 9.0 provides extended support for character sets, collations, calendars and number notations of various languages. Now besides English and Korean we support Japanese, Chinese, Vietnamese, Cambodian, Turkish, German, Spanish, French, and Italian.
Prior to version 9.0, CUBRID has already provided over 90% SQL compatibility with MySQL. In this new version we have further extended SQL syntax for even more compatibility with MySQL and Oracle databases. Added:
- Analytics functions
- Pseudo columns (
LEVELpseudo column in hierarchical queries
Now when migrating data to the latest version of CUBRID, most of SQL statements written in your applications will stay intact. Moreover, CUBRID Migration Toolkit will automatically match most of MySQL/Oracle/CUBRID data types to the most appropriate one in CUBRID 9.0, thus provide seamless migration experience.
To learn more about each of these extensions, refer to 9.0 Release Notes.
We have added several very important indexing techniques which significantly improve the performance of READ operations.
- Function based indexing allows to include function expressions in columns comprising an index.
- Filtered indexing allows to include search conditions in an index.
- Index skip scan optimization allows users to use a multi-column index from its second column even when the first column is not specified.
This all add up to optimizations we have introduced in previous versions. They are:
- Index types
- Query Optimizations
- Multi-range limit optimization
- Key limit optimization
- Skip ORDER BY
- Skip GROUP BY
- Prefix Index
- Index range scan optimization
- Covering Index
- Descending Index
- Query Rewrites
- Server level optimizations
- Shared Query Plan Cache
- Locking Optimizations
- Transaction Concurrency
- Log compression
Database Sharding Support
Database Sharding is one of the most important and massive features that open source CUBRID RDBMS provides. Last week at Highload++ conference in Moscow we presented about CUBRID SHARD. The presentation slides are available below.
Thus, with a native support for High-Availability (HA) with fail-over feature CUBRID provides the best set of RDBMS functionality for large scale Web applications. For further reading about CUBRID SHARD, refer to the following blog articles and CUBRID Manual:
- Database Sharding the Right Way: Easy, Reliable, and Open source - HighLoad++ 2012
- Database Sharding with CUBRID
- Database Sharding Platform at NHN
- Meet CUBRID Database Developers at Russian Internet Technologies 2012 Conference
- CUBRID SHARD Manual
Some other new features in CUBRID 9.0 are:
Improved stability and performance
Overall Engine performance
In CUBRID 9.0 we have significantly improved the overall performance of the CUBRID Engine as well as its stability. The throughput and response time of CUBRID 9.0 have been improved for more than 300% when compared to a previous version.
Figure 1: The number of read/write requests per second of SysBench benchmark.
Figure 2: The average execution time per request of SysBench benchmark.
Figure 3: The accumulated number of transactions of SysBench benchmark.
Improved READ performance
To measure the effectiveness of new Indexing types and optimizations on READ performance, we have run a basic performance test on CUBRID 8.4.1 and 9.0.
SELECT performance in the new version has increased for more than 160% while the performance of WRITE operations is remained on the same level.
Figure 4: Performance Comparison between R4.1 Patch 6 and 9.0 Beta (Linux 32-bit).
Improved stability and performance of Partitioning
In CUBRID 9.0 we have fundamentally enhanced the Partitioning feature for better stability and performance. In addition, we have added support for
PROMOTE statement which allows users to promote a specific partition from a partitioned table to a general table.
Improved HA Stability and Operating Convenience
HA is the flagship feature in CUBRID since version 8.2.0. In this new version we have fixed many stability issues in CUBRID HA. This version also provides a separate control for the HA management process and easier dynamic addition and deletion of nodes in the HA management process.
So CUBRID 9.0 is the best RDBMS we have ever released so far with tons of valuable features, significantly increased performance, and native support for database sharding. We have updated most of APIs that you can use to connect to CUBRID 9.0. You can download PHP, PDO, Python, Ruby, Perl, ADO.NET, OLEDB, ODBC, JDBC, C, and Node.js drivers from http://www.cubrid.org/downloads.
For more information about new features and improvements in CUBRID 9.0, refer to Release Notes.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)