CUBRID is engineered as a completely free, open-source relational database management engine, with built-in enterprise grade features. It provides unique powerful features, such as object oriented database elements relations, data sharding, a native middleware broker, high performance data caching, customizable and extendible globalization support. Not the least, it provides a high level of SQL compatibility with MySQL and other known databases.
We are committed to continuously improve the CUBRID features, the quality and the performance of the engine, the tools and drivers. We did it already for more than 10 years. And we will highly appreciate your contribution to build together a better, and a state of the art end-user experience.
CUBRID uses different licensing for its server engine and its tools/interfaces. The engine has the GPL v2.0 or later license, which allows distribution, modification, and acquisition of the source code. CUBRID APIs and GUI tools have the Berkeley Software Distribution 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.
This means you may freely use it, improve it and distribute it. We expect to share your knowledge and contribute for further improvement. Either if you make your own fork or contribute to already existing Github project, you may also use and improve the existing test cases. 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 core development team may include it into the roadmap.
CUBRID provides enterprise grade features such as High-Availability (HA), Database Sharding, Hot/Online Backup, Offline and Incremental Backups. And they are all customizable to best fit your needs.With CUBRID you get a complete database solution which supports distributed transactions and various replication methods - online, synchronous/asynchronous, one-way, transaction-level, schema independent, chained or grouped replications.
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 Hearbeat. You can configure HA environment in three copy modes for transaction log replication: synchronous, semi-synchronous, and asynchronous modes.
Your choices of architectural configurations ranges 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.
For more possible HA scenarios please check the CUBRID manual in HA section.
Connection pooling, query plan cache and query result cache ensures a fast response time for your queries. Cost based optimizer and various index optimizations (covering, multi-range, skip scan, filter index, function index) provides the best suited execution path and execution time.
The multi-threaded, multi-server architecture combined with the broker middleware gives 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 gives 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 gathers on demand data about your live production server, allowing you to make operational decision to detect bottlenecks, optimize perfomance or reconfigure architecture or hardware.
CUBRID's design and architecture allows for both horizontal and vertical scalability. The database volumes (files) can grow online if needed, as well as the number of volumes. There is virtually no limit on the size of database, the number of tables or indexes, the number of rows in table. You may use table partitioning (hash, list, range) or sharding if one hardware is not enough. Multi Version Concurency Control, lock free hashes, row level and lock escalation, promotable read-to-write page latches and similar performance optimizations enables you too keep the same level of performance when 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.
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 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 to a point of time or the time of failure.
Tools are available to check and repair the database, or to compact the database to make space usage most efficiently 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.
We provide very rich set of resources consisting of in-depth online/offline manuals, release notes, API documentations, tutorials, and usage examples.
Extended list of APIs: JDBC, PHP/PDO, ODBC, ADO.NET, OLEDB, Python, Perl, Ruby, C, and Node.js 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 integrated SQL Query editor
CUBRID Query Browser: a quick and lightweight version of CM for developers
CUBRID Migration Toolkit: the smooth bridge between your MySQL/Oracle/CUBRID databases
CUBRID supports an extended SQL syntax and compatibility with MySQL and Oracle : we provide Client Application Servers middleware specifically for these database engines.
Support for key Oracle SQL features such as Hierarchical Queries and more.
Active community ready to answer questions, resolve issues, discuss on irc, forum, twitter, Facebook, and Google+.
Multi Version 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