CSQL is open source main memory database management system and cache. It encourages student contribution and provides help to students by providing guidance through forums and chat.
5. Lakshya Solutions
CSQL Introduction
Open Source Main Memory Database
Small Footprint (< 1 MB)
Embedded architecture
High performance (100K selects/sec, 50K writes/sec)
Highly concurrent
Implemented in C++
Middle tier caching for any DRDB
Platform - Linux (soon on Solaris)
6. Lakshya Solutions
MMDB is better than DRDB
Hardware trend:
CPU speed, memory & Disk capacity grows 80%/yr
Memory performance grows 10%/yr
Disk speed remains same
Price of memory continues to drop
•Access time for main memory is orders of magnitude less than
that of disk. (100ns VS 10 ms)
•Application queries require random access most of the
time(point lookups)
•Data resides permanently on main memory. No disk I/Os
•No buffer manager overhead
•Data Structures and algorithms are designed for memory
access rather than disk access
7. Lakshya Solutions
CSQL is faster
Performance: Developed from scratch keeping one thing in
mind- performance.
Direct access to data: uses shared memory architecture
User Level Mutexes: Hand written using atomic instructions
Custom Allocators : Fixed and Variable Size Allocators
Zero disk I/O: No redo logs, checkpoint
Embedded Architecture: No network overhead, no data copies
Tightly coupled: code segments which are performance
critical are tightly coupled to avoid data copies
8. Lakshya Solutions
SQL Support
DDL:
•CREATE TABLE
•DROP TABLE
•CREATE INDEX
•DROP INDEX
DML:
•INSERT INTO <tablename> [fieldNameList] VALUES (valuelist)
•UPDATE <tablename> SET fldname=value , ... [WHERE
<condition>]
•DELETE FROM <tablename> [WHERE <condition>]
•SELECT <* | fieldNameList> FROM <tablelist> [WHERE
<condition>]
condition shall be [NOT] <predicate> <AND | OR > <predicate>
predicate shall be <fieldName> <"=, !=, >,<, >=, <="> [fieldName | value] |
<fieldName> [NOT] <BETWEEN value AND value> |
<fieldName >[NOT] <IN valuelist> |
<fieldName> LIKE for character datatype
9. Lakshya Solutions
Storage Manager
Provides mechanism for storing, indexing, retrieving data
from the physical data store
•Atomicity – All or none
•Consistency – takes from one consistent state to another
•Isolation – behavior with respect to other transactions
•Highly concurrent - Multi Threaded Architecture
•Custom Allocators - Fixed and Variable size allocators
•Fault Tolerance – Process failures
•Multi user – Authentication, Roles
•Multi granular locking – Database, Table, Row
•Hash Index - for point lookup
•Tree Index - for Range queries
•Relational Objects - Table, Session
•OS Layer - to ease porting
10. Lakshya Solutions
Benchmark Results (Comparison with Mysql)
Configuration: Dell 1GB RAM, Linux 2.6 Kernel
Table: T1 (f1 integer primary key, f2 char(196))
Operation CSQL - JDBC
Table CSQL InnoDB Memory InnoDB Memory
Insert 19 275 211 14.47 11.11
Read = 22 464 294 21.09 13.36
Update 18 375 218 20.83 12.11
Delete 20 336 200 16.80 10.00
MySql - JDBC Times Faster
Note: All numbers in microsecs.
All other operations are for single row based on primary key value
11. Lakshya Solutions
Student Benefits
Participate in India’s biggest open source product
Secure your future in IT industry
Become C++ expert on Linux
Get to know the tools and techniques involved in real life
development
Get recognized by experts in Industry
Companies value open source contribution
12. Lakshya Solutions
How to start?
Training & Documentation
Video lectures on DBMS, OS, Computer languages
Webinars on CSQL, API, Design, Introduction
Wiki pages for knowledge sharing
User Manual
Architecture
Design Documentation
Source Code
Collaboration Tools
Well managed project (CVS, Bug/Feature tracker)
Forums, Blogs, IRChat
13. Lakshya Solutions
Features for Students
Trigger Support
Set operation
Referential Integrity
Perl / Python Driver
MySQL Adapter
Procedure support
Expression Engine
Any feature you find missing in CSQL