arnia-cubrid - programatica2010
DESCRIPTION
TRANSCRIPT
CUBRIDFor Your Web Services
1. What is CUBRID?
2. CUBRID’s Features for Web Services
3. CUBRID’s Performance for Web Services
4. CUBRID Apps & Tools
5. Contributors & Developers
Content
Ciprian Badescu, managing director Arnia Soft-ware, development and globalization partner
for CUBRID
1. What is CUBRID?
1.1 History
Nov. 2008 CUBRID R1.0 &Open Source Project Launched
Jan. 2007.01 CUBRID Developmentsponsored by naver.com
Feb. 2010 CUBRID on Sourceforge.net
Oct. 2010 CUBRID R3.0 with MySQL Compatibility
Fast Growing and Evolving DBMS- Over 10 Official Releases over last 2 years- Over 90,000 downloads Achieved (Korea, US, Romania, Japan)- Over 1,500 monthly downloads via sourceforge.net
Aug. 2009 CUBRID R2.0 with HA feature
1.1 History CUBRID’s Agility Catches the Functionality!
2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
3.23
4.0
5.05.1
R3.0R3.1
R2.0
R1.0
• Views• Triggers• Stored Procedure• AUTO_INCREMENT• Query Plan Cache• Query Result
Cache• Replication• Partitioning• Click Counter
• Views• Triggers• Stored Procedures• AUTO_INCREMENT•Query Cache• Replication• Full Text Indexing
• Partitioning• Event scheduler•MySQL Cluster• XML Functions
4.1
•HA Feature•Hierarchical Query
5.4 5.5
•MySQL Compatibil-ity
• CUBRID Cluster ClusterCUBRID
MySQL
R3.2
CUBRID R2.2 • INSERT/UPDATE/DELETE Performance Enhanced• Space Reusable Rate Increased • 2010.1Q
CUBRID R3.0• MySQL Compatibility – phase1• JDBC/PHP Driver Enhanced• 2010.3Q
CUBRID R3.1• BLOB/CLOB Supported• OwFS(Distributed Storage) Supported • 2010.4Q
CUBRID R3.2• Index & Pagination Performance Enhanced• MySQL Compatibility – phase2• 2010.4Q
CUBRID R4.0•CUBRID Cluster•Scalability for SNS Services•2011.2Q
1.2 Roadmap CUBRID’s Definite Roadmap to be optimized for Web Services
1.3 CUBRID Architecture
Database Server
Storage Manager
LockManager
LogManager
Brokers Connection Pooling
Monitor-ing/
Logging
Job Queu-ing
Trans-action
Manager
Object Manager
Query Manager
CUBRID Manager
Server
Utilities(Backup/Restore/Compact/Check/
Lock..)
Query Parser Opti-
mizer
Lock Caching
Interfaces
ODBC OLEDB JDBC PHP
CCI Python Ruby
CUBRID Manager GUI Tool
3-tier Architecture for High Performance and Scalability
Various Interfaces and Easy Management Tool Available
1.4 Key Features
High Performance
– Multi-threaded server: Multi-CPUs optimization
– Broker Middleware: Connection pooling
– Cost-Based Optimizer(CBO)
– Query Plan Cache, Query Result Cache
– Key-range Indexing
– Logging: Group commit, Async-commit, Background archiving
Scalability
– Multi-volumes, Multi-threaded server
– 1:N Replication
– Table partitions
1.4 Key Features
Real-time Backup/Restore
– On-line Backup
– Parallel, Compressed Backup
– Incremental Backup (Full, Level1, Level2)
Replication and High Availability
– Transaction based Replication
– Broker Duplication, DB Duplication
– Node Monitoring and Automatic fail-over
2. CUBRID’s FeaturesFor Web Services
2.1 High Availability Can Handle Sudden Increase of Traffic
30 visits/sec.
+5000 visits/sec.Due to article quote
+ 5000 visits/sec.similar requests
1 optimized requestCombines similar requests
Low serverusage
Sends only one query to the server
2.1 High Availability
BROKER
SERVER
APPLICATION SERVERS(WITH CUBRID INTERFACE)
Failover
Automatic node failure detection and Automatic Failover
Separate Failover on M/S Brokers and M/S DB Servers
2.2 Table Partitioning
DATABASE
TableTable_p1
Table_p2
Table_p3
TableTable_p1
Table_p2
Table_p3
TableTable_p1
Table_p2
Table_p3
WRITE READ
Table Partitioning by Hash, Range, List
- Enterprise Feature supported by Oracle EE only
READ Performance Increased by Directly Accessing the Partitioned Table
2.3 Faster Query Processing
SELECT title, INCR(read_count) FROM bbs WHERE id = ?
READ Count by executing SELECT and UPDATE at the same time
SQLPars-ing
Se-man-
ticCheck
Re-writeOpti-miza-tion
PlanGen-era-tion
(CBO)
QueryExe-
cution
ResultFetch
Plan Cache
Send to
Client
Re-sult-Set
Appli-cation
Result Cache
JDBCResultSet
Cache
Server-side Cache for Query Plan and Query Result with Client-side Cache
Increased READ Performance for the Same Pattern Query
_____ ____ _____ ___ __ SELECT article FROM bbs WHERE id = ?;UPDATE bbs SET read_count = read_count + 1 WHERE id = ?;
SELECT article FROM bbs WHERE id = ?;UPDATE bbs SET read_count = read_count + 1 WHERE id = ?;
Long & Expensive Lock
Fast & Cheap Lock
2.4 Scalability for LOB data Unlimited Scalability for Large Objects with Distributed File System
Enable using a Single Interface for Multiple Storages
{col1, col2} {content, im-age}
DBFile
Replica File Replica
File Replica
INSERT INTO T1 VALUES(col1,col2, content, image);
CUBRID BROKER
OWFS
File Replica File
ReplicaDB DB
CUBRID SERVER
3. CUBRID’s Performance For Web Services
3.1 Benchmark - Read
* Test scenario and configurations can be found at http://www.cubrid.org/benchmark_result
Hot-spot Read Test for Small and Medium-sized Services
CUBRID Read Performance is in 2nd place with less CPU usage
Y: PV/sec Y: CPU usage
3.2 Benchmark - Index
* The test has been conducted by Performance Engineering Team in NHN
Index Scan Test on a Table with 1,000,000 Records
Key Range & Filtered Index Scan is Much Faster than MySQL 5.1
SELECT name, address FROM member
WHERE age>=60 and grade=‘A’ and address LIKE ‘%Bucharest%’;
Column Data Type Nullable
Name CHAR(20) NOT NULL
Age INTEGER NOT NULL
Grade CHAR(1) NOT NULL
Phone CHAR(20) NOT NULL
Address VARCHAR(128) NOT NULL
Regtime TIMESTAMP NOT NULL
Intro VARCHAR(1024) NOT NULL
INDEX Column
Index_A Age
Index_B Age, Grade
Index_C Age, Grade, Address
Index_D Age, Grade, Address, Name
Y: TimeY: Time
4. CUBRID Apps & Tools
4.1 Easy Management Tools
CUBRID Manager
Database management Tool (JAVA)
Equivalent of Microsoft Enterprise Manager for MSSQL
CUBRID Web Query
Database management Tool (PHP&AJAX)
The equivalent of phpMyAdmin for MySQL
4.2 Publishing platforms - CMS
Joomla!
Download:http://sourceforge.net/projects/cubrid/files/Applications%20for%20CUBRID/Joomla/Joomla_1.5.20-CUBRID-RC-Full-Package.zip/download
Demo site:http://joomla.cubrid.org
Wordpress
Download:http://sourceforge.net/projects/cubrid/files/Applications%20for%20CUBRID/WordPress/CUBRID%20R3.x%20%2B/wordpress-cubrid-2.9.2.2.zip/download
Demo site:http://wordpress.cubrid.org/
4.3 Community platforms
phpBB
Download:http://sourceforge.net/projects/cubrid/files/Applications%20for%20CUBRID/phpBB/CUBRID%20R3.x%20%2B/phpbb-cubrid-3.0.1.zip/download
Demo site:http://phpbb.cubrid.org
MediaWiki
Download:http://sourceforge.net/projects/cubrid/files/Applications%20for%20CUBRID/MediaWiki/CUBRID%20R3.x%20%2B/mediawiki-cubrid-1.15.2.zip/download
Demo site:http://mediawiki.cubrid.org/
4.4 Demo site for all Apps & Tools http://demo.cubrid.org – Demo portal for all Applications & Tools
Appendix – Useful Links
CUBRID Introduction
– CUBRID User Site (http://cubrid.org)
– CUBRID Blog (http://blog.cubrid.org)
– Interview (
http://opensourcebuzz.technetra.com/2010/06/21/meet-cubrid-one-of-koreas-top-open-source-proje
cts/
)
– Animation (http://www.youtube.com/watch?v=c574-rBsdMg)
CUBRID Dev-Projects
– CUBRID Engine and Tools (http://sourceforge.net/projects/cubrid/)
– CUBRID Cluster (http://sourceforge.net/projects/cubridcluster/)
– CUBRID Interfaces (http://sourceforge.net/projects/cubridinterface/)
CUBRID Documentation
– CUBRID Wiki (http://wiki.cubrid.org/index.php/Main_Page)
– CUBRID Manual (http://www.cubrid.org/manual/)
CUBRID Video Tutorials
– YouTube CUBRID Channel (http://www.youtube.com/cubrid#g/u)
CUBRID Apps and Tools
– APIs and Applications on top of CUBRID (http://www.cubrid.org/apps_and_tools)
5. Contributors & Developers
5.1 Sourceforge - open project
Open development process
All tickets are online All contributors can
participate in the development process
All tickets are open to the community
5.2 Online Specs and User Docs
Thank you for your time!
KEY POINTS
1. Open Source Project2. High Availability and Scalability3. Powerful sponsor assure continuity