posted 2 years ago in News category by Esen Sagynov
Here we are! The new and yet the most powerful with almost twice faster database engine CUBRID 8.4.0 beta has arrived!
This new release is a combination of great new features, frequently request by the users, and increased performance. We have managed to improve the engine performance by almost three fold for certain functions. Based on the same scenario [link to a QA Completion Report (PDF)] we usually used to conduct the quality assurance of a new release, we have seen huge improvements.
The performance of the INSERT operation for the Linux version has been increased for 260% compared to 8.3.1. UPDATE performance has been increased for 120%. DELETE performance has been increased for 141%. SELECT operation performance has been decreased for 5% because our test scenario did not have the SELECT queries which benefit from covering index. Instead, our goal was to extensively test the quality of the implicit type conversions used in the SELECT statements. However, in the production the SELECT operations will show significant performance increase, over 200%, considering the covering indexes are leveraged.
In general the performance of the INSERT and UPDATE operations on Windows platform have been increased for 190%, DELETE performance has been increased for 228%, while SELECT performance has been improved for 140%. See the table below.
All these performance gains have been attained as a result of Index Size Reduction and Covering Index implementation. In CUBRID 8.4.0 we have changed how indexes are stored to reduce the index volume size. As a result, we have managed to decrease the index volume size by 70%, while the data volume size is shrunk by 20%.
We have implemented the Covering Index which changed how the data is retrieved in CUBRID 8.4.0 if the requested columns are previously indexed. In the CUBRID architecture when the index is created on a certain column, the index will store the value of that column as well as the link to the actual record in the data heap. For your information, the link is composed of a volume id, a page id and a slot id. Now let's see how differently 8.4.0 and prior versions behave when requesting the following query:
SELECT a, b FROM mytable WHERE a = 5;
Assume in this case mytable has both columns a and b indexed. So, in prior versions CUBRID would look up the index table, find the record with column a = 5, then using the link to the actual record in the heap would retrieve the value of a column b from there. Note, here CUBRID didn't use the index for column b, which would allow to retrieve the value of the column b much faster than from the heap.
In CUBRID 8.4.0 we identify these kinds of queries which request the data for the columns which are already indexed. Thus in the above example CUBRID would retrieve the data for both columns a and b right away from the index table skipping the heap lookup. This allowed us to boost CUBRID's performance almost twice.
In this new release we have also increased the default size and the number of volume pages when users create a database. So far we have been monitoring the database usage statistics of big corporations like NHN. We have noticed that the number of the database volumes increases very rapidly, each of which used to store 20 MB of data. Since 8.4.0 the volume page size is increased from 4KB to 16KB and the number of pages is increased from 5,000 to 25,000. Thus, the default database volume size is increased from 20 MB to 400 MB.
We have more news to go... and developers will love them!
The new CUBRID 8.4.0 is really generous now! It removes strict limitations for data type comparison and assignment and provides extensive support for implicit type conversions. Now it is a heaven for developers. They can free themselves and go with mismatching data types comparison or assignment, and CUBRID will do the rest. Such extension will allow users to easily and quickly migrate their applications from other databases to CUBRID.
CUBRID 8.4.0 is a new great product! Now we provide about 90% SQL syntax compatibility with MySQL that it will rock your programmer's world! No longer should you worry about changing your SQL statements to comply with CUBRID SQL syntax. Most of MySQL's commonly used syntax is now native in CUBRID. We have covered this topic extensively in our previous blog. Refer to it for more information.
Accompanying the SQL Exntesions, we have greatly improved our PHP API, which also provides almost full compatibility with MySQL PHP driver. Except for database related functions of MySQL, all you have to do is replace the "mysql_" prefix to "cubrid_". See the CUBRID vs. MySQL PHP API Functions Comparison for more information.
Additionally, in CUBRID 8.4.0 we have reworked both the CUBRID Manager and the CUBRID Query Browser. We have implemented tons of new features and most importantly we have improved the usability. Now they are much more convenient and easy to use. Read the full article for more information.
High-Availability feature configuration became even easier than ever before. We have put our efforts on bringing more convenience and stability, as well as improve the functionality. Now users can quickly configure HA and monitor the nodes right from the CUBRID Manager. Read the our blog to learn more about the new changes in the CUBRID 8.4.0 HA.
Another important usability and functionality enhancement we have in this new release is the plugin based support for nLucene in the CM. Now users can configure and manage their nLucene instances right from the CUBRID Manager. Isn't it amazing!
CUBRID 8.4.0 is a dream release we were waiting for for a long time. Now it is here! While the GA release is making through this month and probably June, too, grab your copy of CUBRID 8.4.0 Beta from http://www.cubrid.org/downloads.
For more information on 8.4.0 changes refer to the Release Note (PDF).