||This article appears to be written like an advertisement. (August 2010)|
|Original author(s)||Prabakaran Thirumalai|
|Developer(s)||Lakshya & Community|
|Stable release||CSQL 3.3 / May 8, 2011|
|Operating system||Linux, Solaris|
|License||GNU General Public Licence or proprietary|
CSQL is an open source main memory high-performance relational database management system developed at sourceforge.net. It is designed to provide high performance for SQL queries and DML statements.
Main Memory databases performs 10-20 times faster than the disk based database systems, as it completely keeps the database in main memory. As there is no disk I/O, main memory databases provide predictive response time (~10 microseconds for point lookup and ~20 microseconds for insert/update/delete operations) which makes main memory databases ideal for real time as well as near real time applications. Refer: for more information.
It can be configured to work in Embedded as well as client/server mode. Apart from acting as relational storage engine, it can also transparently cache data from existing databases.
It can be configured to work as transparent, updateable, real time cache ( CSQL Cache ) for existing database management systems such as MySQL, Postgres, etc.
- Direct access to database, data is available in application's address space through embedded mode.
- Client/server mode access for applications residing in remote hosts.
- Atomicity - All the operations of a transaction performed take effect on the database or none of them will take effect
- Consistency - Database should be in legal state when the transaction begins and when it ends
- Isolation - Application should be able to make operations in a transaction that appear isolated from all other transactions
- Durability - Ability to recover all the committed transactions in case of application crash
- Protection from process failures by freeing resources held by dead application process
- Data Item (row) level locking and lock free internal structures for high concurrency
- Support for multiple users and authentication mechanism to access database
Data Type and Constraints
- Data Types: byte, small, int, bigint, float, double, char, binary, date, time, timestamp
- Constraints: NOT NULL, Unique key, Primary Key, Foreign Key
- Default values and auto increment key
- Faster access for point lookup using hash indexing
- Faster access for range queries using tree indexing
- Highly concurrent faster operations using trie
- CSQL Cache - Table level database caching for MySQL. Postgres