Background Image

ABOUT

Enterprise Open Source DBMS

CUBRID is an open source DBMS optimized for OLTP. It offers great read and write performance than other database systems. It assures high performance, stability, scalability and high availability which are required for mission-critical applications. In addition, CUBRID provides ease of installation and native GUI-based administration tools for developers' convenience.

We are committed to continuously improve the CUBRID features, the quality and the performance of the engine, drivers, and tools. We have focused on pursuing the best quality for more than 20 years. And we will highly appreciate your contribution on CUBRID project for building a better end-user experience.

 


Open Source

This means you may freely use it, improve it and distribute it. We expect you to share your knowledge and contribute for further improvement. You can make your own fork or contribute to existing GitHub projects. You may use and improve the existing test cases as well. Feel free to add your own tools and drivers or request new ones for your requirements: the community may already have an answer for you or maybe the development team will include it into the roadmap.

Flexible License

CUBRID uses different licenses for its server engine and its tools/interfaces. The engine has the Apache license 2.0, which allows distribution, modification, and acquisition of the source code. CUBRID APIs and GUI tools have the Berkeley Software Distribution (BSD) license in which there is no obligation of opening derivative works. Adopting two separate license systems provides complete freedom to Independent software vendors (ISV) to develop and distribute CUBRID-based applications.

Enterprise Features

CUBRID provides enterprise-grade features such as High Availability (HA), Hot/Online Backup, and Offline and Incremental Backups, which are all customizable to fit the best of your need. With CUBRID, you get a complete database solution that supports distributed transactions and various replication methods - online, synchronous/asynchronous, one-way, transaction-level, schema independent, and chained or grouped replications.


Major Features

  • High Availability

    CUBRID enables you to setup master/slave or master/slave/replica configurations. We use transaction logs to replicate changes from master server to slave and replica server while providing accurate and predictable fail-over and fail-back features based on CUBRID heartbeat. You can configure the HA environment in two copy modes for transaction log replication: synchronous and asynchronous modes.

    Your choices of architectural configurations range from simple single master/slave, which provides basic fail-over/fail-back services, to multi master/slave configuration and master/slave/replica for intensive read scenarios.

  • High Performance

    Connection pooling and query plan cache ensure the fast response time for your queries. Cost-based optimizer and various index optimizations (covering, multi-range, skip scan, filter index, function index) provide the most suitable execution path and execution time. The query cache hint can be used to enhance the performance for the query which is executed repeatedly.

    The multi-threaded, multi-server architecture combined with the broker middleware provides you more space for hardware deployment choices. It also provides better user context isolation: a Client Application Server process handles one single user (single process) at one time, minimizing risk in case of fatal crashes, returning overall better service time.

    Internationalization, time zone support, and various SQL extensions as MySQL and Oracle compatible functions and statements give you more freedom in designing, converting or importing your database and queries. You may use the embedded query plan viewer and optimization hints to detect intensive workloads and fine-tune your queries. An integrated system of statistics allows gathering on-demand data about your live production server, allowing you to make operational decisions to detect bottlenecks, optimize performance or reconfigure architecture or hardware.

  • Scalability and Large Data Optimization

    CUBRID's design and architecture allow both horizontal and vertical scalability. The database volumes (files), as well as the number of columns, can grow online if needed. There is virtually no limit on the size of the database, the number of tables or indexes, and the number of rows in a table. Multiversion Concurrency Control (MVCC), lock free hashes, row level and lock escalation, promotable read-to-write page latches, and similar performance optimizations enables you to keep the same level of performance when the amount of data and work increases. We also care about storage, by reusing deleted space and promptly vacuuming unneeded data, while keeping in check the I/O and memory usage.

  • Reliability/Operability

    Restore and online backup based on WAL (Write-Ahead-Logging) protocol guarantees the consistency and correctness of your database even in case of software or hardware failures. There are three possible levels of backup: full, first incremental, and second incremental providing various freedom of choice of backup size and duration versus the level of confidence.

    You may choose the number of parallel backup jobs to balance with the online server activity, compression level to prioritize between CPU usage and size of backup or optional integrity checks. Restore is possible at a point of time or the time of failure.

    Tools are available to check and repair the database, and to compact the database to make space usage as efficient as possible.

    User access may be controlled at table level and type of access, with IP/user/database filters.

    In High Availability configuration, the fail-over is automatic, guaranteeing no loss of data is possible.

    Non-critical system parameters may be changed online, allowing fast and instant changing of behavior.

  • Ease of Development

    We provide various set of resources consisting of in-depth online manuals, release notes, API documentations, tutorials, and usage examples.

    Extended list of APIs: JDBC, PHP/PDO, ODBC, ADO.NET, OLEDB, Python, Perl, Ruby, C, Node.js and Go is available to match and integrate with your application.

    Several native tools for database administrators and developers are provided:
    - CUBRID Manager: database administration tool with the integrated SQL Query editor
    - CUBRID Migration Toolkit: the smooth bridge between your MySQL/Oracle/CUBRID databases

    CUBRID supports an extended SQL syntax and compatibility with MySQL and Oracle

    Support for key Oracle SQL features such as Hierarchical Queries and more.

  • Major RDBMS Features

    MVCC (Multiversion Concurrency Control) enabling high performance and scalability, eliminating deadlocks

    Seamless transactions: commit/rollback/savepoint

    Transactions consistency in backup/restore/replication/HA

    SQL-92 standard compliance and extended SQL syntaxes

    View/Trigger/Primary key/Auto increment/Foreign key/Serial/Java Store Procedures

  • Security

    CUBRID supports Transparent Data Encryption (henceforth, TDE). TDE means transparently encrypting data from the user’s point of view. This allows users to encrypt data stored on disk with little to no application change.

    CUBRID uses SSL/TLS (Secure Socket Layer/Transport Layer Security) protocol to encrypt data transmitted between the client and the server. The CUBRID server uses OpenSSL for encryption, and the client can make an encrypted connection using JDBC or CCI Driver. The encryption protocols supported between the client and server are SSLv3, TLSv1, TLSv1.1, and TLSv1.2.


High Availability

CUBRID HA enables OLTP services to be highly available and to balance traffics efficiently. CUBRID HA can be configured with a master node to process Read/Write loads, a slave node to replace the master on failure, and a replica node to distribute Read loads. The following table shows three types of CUBRID HA system.

  • HA Default (M:S:R = 1:1:0)

    HA Default system consists of a single master and slave nodes to provide highly available services.

  • HA Extended (M:S:R = 1:N:0)

    HA Extended system consists of a single master and N slave nodes for both high availability and load balancing. This type enables server duplication between two data warehouses.

  • HA Load Distributed (M:S:R = 1:1:N)

    HA Load Distributed system consists of HA Default nodes as well as multiple replica nodes for distributing read loads. A master in this system uses fewer resources than the one in HA Extended system.

image

[CUBRID Broker Duplication and Automatic Fail-over]

image

[CUBRID DB Server Duplication and Automatic Fail-over]

Background Image

CUBRID 11.0 is Available Now.

Faster, Safer, More Convenient

[Read More]

License Policy

Unlike other open source DBMS vendors, CUBRID has no commercial license but only an open source license in order to provide cost savings to companies. Because of this unique license policy, customers are not required to open the source code of applications or purchase a commercial license.

CUBRID has a separate license for the server engine and interface. The server engine adopts the Apache license 2.0, which allows distribution, modification, and acquisition of source code. The interface and tools have the BSD license in which there is no obligation of opening derivative works. The reason of adopting two separate license systems is that we do not want to give any limitations to Independent Software Vendors (ISV) for developing and distributing various CUBRID based applications.

Screenshot

Join the CUBRID Project on