Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Current Events
Join our developers event to win one of the valuable prizes!
posted 2 years ago
viewed 7975 times
Share this article

Announcing CUBRID 9.0 with 3x performance increase and Sharding support

cubrid_9_0_banner.jpg

October is full of great news for CUBRID community! We have released a new Node.js driver for CUBRID to allow developers, who love both JavaScript and event-driven programming, to work with CUBRID, the most optimized database for Web applications. We have updated most of our drivers and tools which now provide extended functionality and improved stability. We were invited to speak at HighLoad++ Developers Conference in Moscow, Russia, where we have introduced new features of CUBRID Database for horizontal scalability. And today I am extremely happy to announce a new major CUBRID 9.0 release which provides users with tons of valuable features, significantly increased performance, and native support for database sharding.

New Features

Multilingual Support

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.

Extended SQL

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:

  1. Analytics functions OVER aggregate functions
  2. MERGE statement support
  3. JOIN support in DELETE/UPDATE statements
  4. ENUM data type
  5. Pseudo columns (SYSDATE and USER) as DEFAULT values.
  6. Stand-alone VALUES clause
  7. OFFSET keyword in LIMIT clause
  8. LEVEL pseudo column in hierarchical queries
  9. INET_ATON and INET_NTOA functions
  10. SHOW CREATE TABLE syntax support

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.

Advanced Indexing

We have added several very important indexing techniques which significantly improve the performance of READ operations.

  1. Function based indexing allows to include function expressions in columns comprising an index.
  2. Filtered indexing allows to include search conditions in an index.
  3. 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:

  1. Index types
    1. Reverse Index
    2. Unique Index
    3. Primary Key
    4. Foreign Key

  2. Query Optimizations
    1. Multi-range limit optimization
    2. Key limit optimization
    3. Skip ORDER BY
    4. Skip GROUP BY
    5. Prefix Index
    6. Index range scan optimization
    7. Covering Index
    8. Descending Index
    9. Query Rewrites
  3. Server level optimizations
    1. Shared Query Plan Cache
    2. Locking Optimizations
    3. Transaction Concurrency
    4. 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:

Additional features

Some other new features in CUBRID 9.0 are:

  1. Cursor Holdability support
  2. Improved Error Messages

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.

cubrid_sysbench_rps.png

Figure 1: The number of read/write requests per second of SysBench benchmark.

cubrid_sysbench_exec_time.png

Figure 2: The average execution time per request of SysBench benchmark.

cubrid_sysbench_transactions.png

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.

cubrid_9_0_select_performance.png

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.

If you have questions, feel free to ask on our dedicated Q&A site, forum, Twitter, Facebook, Google+#cubrid IRC channel, or contact us by email. We will be glad to answer you!



comments powered by Disqus