Arnia-Cubrid - Programatica2010

28
CUBRID For Your Web Services

description

 

Transcript of Arnia-Cubrid - Programatica2010

Page 1: Arnia-Cubrid - Programatica2010

CUBRIDFor Your Web Services

Page 2: Arnia-Cubrid - Programatica2010

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

Page 3: Arnia-Cubrid - Programatica2010

1. What is CUBRID?

Page 4: Arnia-Cubrid - Programatica2010

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

Page 5: Arnia-Cubrid - Programatica2010

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

Page 6: Arnia-Cubrid - Programatica2010

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

Page 7: Arnia-Cubrid - Programatica2010

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

Page 8: Arnia-Cubrid - Programatica2010

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

Page 9: Arnia-Cubrid - Programatica2010

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

Page 10: Arnia-Cubrid - Programatica2010

2. CUBRID’s FeaturesFor Web Services

Page 11: Arnia-Cubrid - Programatica2010

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

Page 12: Arnia-Cubrid - Programatica2010

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

Page 13: Arnia-Cubrid - Programatica2010

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

Page 14: Arnia-Cubrid - Programatica2010

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

Page 15: Arnia-Cubrid - Programatica2010

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

Page 16: Arnia-Cubrid - Programatica2010

3. CUBRID’s Performance For Web Services

Page 17: Arnia-Cubrid - Programatica2010

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

Page 18: Arnia-Cubrid - Programatica2010

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

Page 19: Arnia-Cubrid - Programatica2010

4. CUBRID Apps & Tools

Page 20: Arnia-Cubrid - Programatica2010

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

Page 23: Arnia-Cubrid - Programatica2010

4.4 Demo site for all Apps & Tools http://demo.cubrid.org – Demo portal for all Applications & Tools

Page 24: Arnia-Cubrid - Programatica2010

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)

Page 25: Arnia-Cubrid - Programatica2010

5. Contributors & Developers

Page 26: Arnia-Cubrid - Programatica2010

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

Page 27: Arnia-Cubrid - Programatica2010

5.2 Online Specs and User Docs

Page 28: Arnia-Cubrid - Programatica2010

Thank you for your time!

KEY POINTS

1. Open Source Project2. High Availability and Scalability3. Powerful sponsor assure continuity

[email protected]