-
Highly available
database clusters with JDBC
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 2 - 19/01/2005
Scaling the database tier –
Alternative 1 (SMP)
Internet
Web frontend
App. server
Well-known database
vendor here
Database
Well-known hardware +database vendors here
�Cons� Cost� Scalability limit
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 3 - 19/01/2005
Scaling the database tier –
Alternative 2 (shared disks)
Internet
Web frontend
App. server Database Disks
Another well-knowndatabase vendor
�Cons�still expensive hardware�availability
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 4 - 19/01/2005
Internet
�scalability�high availability�without modifying the client application�database vendor independent�on commodity hardware
Database clustering
middleware
JDBCJDBCJDBC
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 5 - 19/01/2005
RAIDb concept
�Redundant Array of Inexpensive Databases�RAIDb controller
�gives the view of a single database to the client�balance the load on the database backends
�RAIDb levels offers various tradeoff of performance and fault tolerance
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 6 - 19/01/2005
RAIDb levels
�RAIDb-0�partitioning�no duplication and no fault tolerance�at least 2 nodes
table 2 & 3 table ...
RAIDb controller
table n-1table 1 table n
SQL requests
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 7 - 19/01/2005
RAIDb levels
�RAIDb-1�mirroring�performance bounded by write broadcast�at least 2 nodes
Full DB Full DB
RAIDb controller
Full DBFull DB Full DB
SQL requests
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 8 - 19/01/2005
RAIDb levels
�RAIDb-2�partial replication�at least 2 copies of each table for fault tolerance�at least 3 nodes
table x table y
RAIDb controller
table x & yFull DB table z
SQL requests
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 9 - 19/01/2005
C-JDBC overview
�Middleware implementing RAIDb�100% Java implementation�open source (LGPL)
�Two components�generic JDBC driver (C-JDBC driver)�C-JDBC Controller
�Read-one, Write all approach�provides eager (strong) consistency
�Supports heterogeneous databases
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 10 - 19/01/2005
architectural overview
JVM
Applicationserver
C-JDBC JDBC driver
C-JDBCcontroller
JVM
MySQLJDBC driver
MySQLdatabase
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 11 - 19/01/2005
Inside the C-JDBC
Controller
XML configuration file
C-JDBC Controller
MySQL
C-JDBC driver
Java client program
(Servlet, EJB, ...)
XML engine
MySQL
Virtual database
Database Backend
Connection Manager
Database Backend
Connection Manager
Request Manager
Request Cache
Scheduler
Load balancer
MySQL JDBC driver
MySQL JDBC driver
Configuration &
administrationAdministration console
RMIRMI
Recovery Log
Authentication Manager
MySQL
Database Backend
Connection Manager
MySQL JDBC driver
Virtual database
Database Backend
Connection Manager
Database Backend
Connection Manager
Request Manager
Request Cache
Scheduler
Load balancer
Recovery Log
Authentication Manager
Oracle
Oracle JDBC driver
Oracle JDBC driver
Oracle
SocketsSockets
JMX
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 12 - 19/01/2005
Scaling existing databases
�add open source databases for more fault tolerance andbetterperformances
�rules for on-the-flyquery rewriting to handleheterogeneity
MySQL MySQL
C-JDBC Controller RAIDb-2
MySQL JDBC driver
MySQLOracle
Java client program
C-JDBC driver
JVM
C-JDBC driver
C-JDBC driver
JVM
JVM
Oracle JDBC driver
EJB Container JOnAS, WebLogic,
JBoss, WebSphere, ...
Servlet container Tomcat, Jetty, ...
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 13 - 19/01/2005
TPC-W benchmark(Amazon.com)
�Nearly linear speedups with the shopping mix
0
200
400
600
800
1000
1200
1400
1600
0 1 2 3 4 5 6
Number of nodes
Th
rou
gh
pu
t in
req
ues
ts p
er m
inu
te
Single Database
Full replication
Partial replication
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 14 - 19/01/2005
Horizontal & Vertical
scalability
DB 6DB 5
DB native JDBC driver
DB 7
C-JDBC driver
DB 1 DB 2
DB native JDBC driver
DB 3
DB native JDBC driver
DB 4
C-JDBC controller Full replication
C-JDBC controller Full replication
C-JDBC controller Full replication
C-JDBC controller Full replication
C-JDBC driverJVM
Client program
C-JDBC driver
JVM
Client program
C-JDBC driver
JVM
Client program
C-JDBC driver
C-JDBC driver
�adapt and evolveaccording to user needs
�advanced cachingfunctionalities
�dynamic adding ofdatabase backends
�fault toleranttransaction log
�integrated backupand checkpointing
�grid & edge-sideservers support
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 15 - 19/01/2005
Administration
�JMX Graphical Console�cluster administration�backup/checkpoint mgt�cluster monitoring�SQL profiling�integrated SQL console (iSQL)
�Administration API�integration in any existing administration infrastructure�JMX notifications for all internal events�JMX MBeans for monitoring
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 16 - 19/01/2005
J2EE end-to-end reliability
�ObjectWeb exclusivity�On-demand availability
� no SPOF, transparent failover
�On-demand scalability� scalability, flexibility
Internet
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 17 - 19/01/2005
C-JDBC today
�Web site�~200.000 hits/month�>28.000 downloads�EU (18 countries) 36%, US 28%, Japan 12%, China
5%, Canada 4%, Australia 4%, India 3%, Brazil 2%, …
�Community�27 committers both industrial & academics�[email protected]: >200 subscribers, 200-300
msgs/month�translation in japanese, italian, chinese, turkish, french ,
german
�RPM on JPackage.org�Professional support by Emic Networks
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 18 - 19/01/2005
What’s next?
�Tribe (.objectweb.org)�replacement for JGroups�uniform total order broadcast optimized for clusters
�LeWYS (.objectweb.org)�hardware and software monitoring�monitoring repository
�Distributed query execution�Optimized support for edge-side servers and
interconnected clusters
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 19 - 19/01/2005
Demos
�Tuesday 18�INRIA booth: 12.00 to 1pm�ObjectWeb booth: 2pm to 2.30pm
�Wednesday 19�INRIA booth: 10.30am to 11am�ObjectWeb booth: 1pm to 1.30pm
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 20 - 19/01/2005
Q&A_________
Thanks to all users and contributors ...
http://c-jdbc.objectweb.org
-
Bonus slides
-
http://c-jdbc.objectweb.org/ - [email protected] ObjectWebCon’05 - 22 - 19/01/2005
Current limitations
�JDBC only�Distributed joins�Updatable ResultSets�XA support through XAPool only�transparent controller failover not supported
when using horizontal scalability with JGroups�network partition/reconciliation not supported