CUBRID presentation at Programatica Conference 2010

29
CUBRID 2008 For Your Web Services

Transcript of CUBRID presentation at Programatica Conference 2010

Page 1: CUBRID presentation at Programatica Conference 2010

CUBRID 2008For Your Web Services

Page 2: CUBRID presentation at Programatica Conference 2010

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

Page 3: CUBRID presentation at Programatica Conference 2010

1. What is CUBRID?

Page 4: CUBRID presentation at Programatica Conference 2010

1.1 History

2008.11 CUBRID 2008 R1.0 &Open Source Project Launched

2007.01 CUBRID Developmentsponsored by naver.com

2010.02 CUBRID on Sourceforge.net

2010.09 CUBRID 2008 R3.0 with SQL Compatibility

Fast Growing and Evolving DBMS- Over 10 Official Releases over last 2 years- Over 90,000 downloads Achieved (Korea, US, Romania, Japan)- Over 1500 monthly downloads via sourceforge.net

2009.08 CUBRID 2008 R2.0 with HA feature

Page 5: CUBRID presentation at Programatica Conference 2010

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

• SQL Compatibility• CUBRID FBO

• CUBRID Cluster ClusterCUBRID

MySQL

R3.2

Page 6: CUBRID presentation at Programatica Conference 2010

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: CUBRID presentation at Programatica Conference 2010

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 Supported

Page 8: CUBRID presentation at Programatica Conference 2010

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: CUBRID presentation at Programatica Conference 2010

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: CUBRID presentation at Programatica Conference 2010

2. CUBRID’s FeaturesFor Web Services

Page 11: CUBRID presentation at Programatica Conference 2010

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: CUBRID presentation at Programatica Conference 2010

2.1 High Availability

BROKER

SERVER

APPLICATION SERVERS(WITH CUBRID INTERFACE)

Failover

Automatic node failure detection and Automatic Failover

Separately Failover on M/S Brokers and M/S DB Servers

Page 13: CUBRID presentation at Programatica Conference 2010

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: CUBRID presentation at Programatica Conference 2010

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: CUBRID presentation at Programatica Conference 2010

2.4 Scalability for LOB data Unlimited Scalability for Large Objects with Distributed File System

Enable to use 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: CUBRID presentation at Programatica Conference 2010

3. CUBRID’s Performance For Web Services

Page 17: CUBRID presentation at Programatica Conference 2010

4.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: CUBRID presentation at Programatica Conference 2010

4.2 Benchmark - Index

* 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: CUBRID presentation at Programatica Conference 2010

1 User 10 User 100 User

CUBRID 55.47 51.87 4.09

MSSQL 53.83 50.22 3.42

MySQL 52.42 31.04 0.8

0

10

20

30

40

50

60

TP

S

4.3 Benchmark – DB size and Users CUBRID Stable Performance over small/medium DB size

CUBRID Stable Performance over number of Concurrent Users

Small DB (1,000)

Middle DB (10,000)

Large DB (100,000)

CUBRID 50.97 51.87 11.11

MSSQL 53.35 50.22 13.56

MySQL 144.16 31.04 0.86

0

20

40

60

80

100

120

140

TP

S

* TPC-W Test on online-shop application using DBBench has been conducted by Yonsei University

Page 20: CUBRID presentation at Programatica Conference 2010

4. CUBRID Apps & Tools

Page 21: CUBRID presentation at Programatica Conference 2010

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 24: CUBRID presentation at Programatica Conference 2010

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

Scalable structure to support future Apps

Page 25: CUBRID presentation at Programatica Conference 2010

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-projects/)

– 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 26: CUBRID presentation at Programatica Conference 2010

5. Contributors & Developers

Page 27: CUBRID presentation at Programatica Conference 2010

5.1 Sourceforge - open project

Open development process

All tickets are online All contributors can

participate in the development process

All tikets are open to the community

Page 28: CUBRID presentation at Programatica Conference 2010

5.2 Online Specs and User Docs

Page 29: CUBRID presentation at Programatica Conference 2010

Thank you.