GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.
-
Upload
mitchell-short -
Category
Documents
-
view
215 -
download
2
Transcript of GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.
![Page 1: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/1.jpg)
GORDA Kickoff meeting
INRIA – Sardes project
Emmanuel Cecchet
Sara Bouchenak
![Page 2: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/2.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 2 - 07/10/2004
Outline
INRIA, ObjectWeb & SardesGORDA
![Page 3: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/3.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 3 - 07/10/2004
Budget: 120 M€ (tax not incl.)
900 permanent staff400 researchers500 engineers, technical and administrative
450 researchers from other organizations700 Ph.D students200 external collaborators750 trainees, post-doctoral students, visiting researchers from abroad
(universities or industry))6 Research Units
A scientific force of 3,000
INRIA key figures
Jan. 2003A public scientific and technological research institutein computer science and control
under the dual authority of the Ministry of Research and the Ministry of Industry
INRIA Rhône-Alpes
![Page 4: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/4.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 4 - 07/10/2004
• Itanium-2 processors• 104 nodes (Dual 64 bits 900 MHz processors, 3 GB memory, 72 GB
local disk) connected through a Myrinet network• 208 processors, 312 GB memory, 7.5 TB disk• Connected to the GRID• Linux OS (RedHat Advanced Server)• First Linpack experiments at INRIA
(Aug. 03) have reached 560 GFlop/s
• Applications : Grid computing,classical scientific computing, high performance Internet servers, …
iCluster 2
![Page 5: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/5.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 5 - 07/10/2004
ObjecWeb key figures
Open source middleware development Based on open standard
J2EE, CORBA, OSGi…
International consortiumFounded by INRIA, Bull and FT R&D in 2001
Academic partnersEuropean universities and research centers
Industrial partnersRedHat, Suse, MySQL, …NEC, Bull, France Telecom, Dassault, Cap Gemini,
…
![Page 6: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/6.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 6 - 07/10/2004
Common Software & Architecture for Component Based Development
OS
Gi
Hardware & OS
Applications
J2E
E
CC
M
...
Dedicated Middleware Platform
Networked Resources
JVM
Tra
nsa
ctio
ns
Per
sist
ence
Dep
loym
ent
...
Co
mp
osi
tio
n
...
Application Servers
Database
Connectivity
Inte
roper
abili
ty
To
ols
Fra
mew
ork
s
Co
mp
on
ents
...
JOn
AS
Op
enC
CM
OS
CA
R
Pro
Act
ive
JOR
M/M
ED
OR
JOT
M
OS
CA
R
Fra
cta
lThink
JORAM
DotNetJ
C-JDBC
RmiJdbc
Octopus
Enhydra
Zeus
Kil
im
CAROL
Jon
ath
an
Sp
eed
o
RUBiS
Bonita
JAWE
XMLC
JMOB
![Page 7: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/7.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 7 - 07/10/2004
Sardes project
Distributed Systems groupMain research themes
Reflective component technologyAutonomous systems management
Applications areashigh-availability J2EE serversdynamic monitoring, configuration and resource
management in large scale distributed systems(embedded system networks, ubiquitous computing)
Result dissemination by ObjectWeb
![Page 8: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/8.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 8 - 07/10/2004
Outline
INRIA, ObjectWeb & SardesGORDA
![Page 9: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/9.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 9 - 07/10/2004
Sardes experiences
Component-based open source middlewareObjectWeb (http://www.objectweb.org)
J2EE application serversJOnAS clustering (http://jonas.objectweb.org)
Database replication middlewareC-JDBC (http://c-jdbc.objectweb.org)
BenchmarkingRUBiS (http://rubis.objectweb.org)TPC-W (http://jmob.objectweb.org)CLIF (http://clif.objectweb.org)
MonitoringLeWYS (http://lewys.objectweb.org)
![Page 10: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/10.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 10 - 07/10/2004
Common scalability practice
Internet
Web frontend
App. server
Well-known database
vendor here
Database
Well-known hardware +database vendors here
Cons Cost Scalability limit
![Page 11: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/11.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 11 - 07/10/2004
Replication with shared disks
Internet
Web frontend
App. server Database Disks
Another well-knowndatabase vendor
Consstill expensive hardwareavailability
![Page 12: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/12.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 12 - 07/10/2004
Master/Slave replication
Internet
Web frontend
App. server
Consconsistencyfailover time on master failurescalability
Master
![Page 13: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/13.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 13 - 07/10/2004
Internet
Database tier should be scalable highly available without modifying the client application database vendor independent on commodity hardware
Atomic broadcast-based replication
Atomicbroadcast
![Page 14: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/14.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 14 - 07/10/2004
Internet
JDBC compliant (no client application modification)database vendor independent
JDBC driver required heterogeneity support
no 2PC, no group communication between databasesgroup communication for controller replication only
C-JDBC
JDBC
JDBCJDBC
![Page 15: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/15.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 15 - 07/10/2004
RAIDb - Definition
Redundant Array of Inexpensive Databasesbetter performance and fault tolerance than a
single database, at a low cost, by combining multiple database instances into an array of databases
RAIDb levels offers various tradeoff of performance and fault tolerance
![Page 16: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/16.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 16 - 07/10/2004
RAIDb
Redundant Array of Inexpensive Databasesbetter performance and fault tolerance than a single
database, at a low cost, by combining multiple database instances into an array of databases
RAIDb controllergives the view of a single database to the clientbalance the load on the database backends
RAIDb levelsRAIDb-0: full partitioningRAIDb-1: full mirroringRAIDb-2: partial replicationcomposition possible
![Page 17: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/17.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 17 - 07/10/2004
C-JDBC – Key ideas
Middleware implementing RAIDbTwo components
generic JDBC 2.0 driver (C-JDBC driver)C-JDBC Controller
C-JDBC Controller providesperformance scalabilityhigh availabilityfailovercaching, logging, monitoring, …
Supports heterogeneous databases
![Page 18: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/18.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 18 - 07/10/2004
C-JDBC – Overview
Database Database
C-JDBC Controller Scalability - Fault tolerance - Failover -
Monitoring - Caching - Logging - ...
Database JDBC driver
DatabaseDatabase Database
Database
JVM
Java client program
Database JDBC driver
JVM
EJB Container JOnAS, WebLogic,
JBoss, WebSphere, ...
Servlet container Tomcat, Jetty, ...
Database JDBC driver
MySQL, PostgreSQL, Oracle, DB2, InstantDB, ...
Database JDBC driver
JVM
Java client program
C-JDBC driver
JVM
EJB Container
JOnAS,
WebLogic, JBoss, WebSphere, ...
Servlet container
Tomcat,
Jetty, ...
C-JDBC driver
C-JDBC driver
JVM
MySQL, PostgreSQL, Oracle, DB2, InstantDB, ...
JVM
C-JDBC
No scalability No fault tolerance
No failover
EJB Container
JOnAS,
WebLogic, JBoss, WebSphere, ...
Servlet container
Tomcat,
Jetty, ...
![Page 19: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/19.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 19 - 07/10/2004
Heterogeneity support
unload a singleOracle DB withseveral MySQL
RAIDb-2 forpartial replication
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, ...
![Page 20: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/20.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 20 - 07/10/2004
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
![Page 21: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/21.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 21 - 07/10/2004
C-JDBC features
unified authentication managementtunable concurrency controlautomatic schema detectiontunable replication: full partitioning, partial replication,
full replicationcaching: metadata, parsing, result with various
invalidation granularitiesvarious load balancing strategieson-the-fly query rewriting for macros and heterogeneity
supportrecovery log for dynamic backend adding and failure
recoverydatabase backup/restore using OctopusJMX based monitoring and administrationgraphical administration console
![Page 22: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/22.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 22 - 07/10/2004
C-JDBC Controller
MySQL
C-JDBC driver
MySQL
Virtual database 1
Database Backend
Connection Manager
Database Backend
Connection Manager
Request Manager
Query result cache
Scheduler
Load balancer
MySQL JDBC driver
MySQL JDBC driver
Recovery Log
Authentication Manager
MySQL
Database Backend
Connection Manager
MySQL JDBC driver
C-JDBC driver
Client application (Servlet, EJB, ...)
Client application (Servlet, EJB, ...)
Functional overview
connect myDBconnect login, passwordexecute SELECT * FROM t
![Page 23: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/23.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 23 - 07/10/2004
C-JDBC Controller
MySQL
C-JDBC driver
MySQL
Virtual database 1
Database Backend
Connection Manager
Database Backend
Connection Manager
Request Manager
Query result cache
Scheduler
Load balancer
MySQL JDBC driver
MySQL JDBC driver
Recovery Log
Authentication Manager
MySQL
Database Backend
Connection Manager
MySQL JDBC driver
C-JDBC driver
Client application (Servlet, EJB, ...)
Client application (Servlet, EJB, ...)
Functional overview
execute INSERT INTO t …
![Page 24: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/24.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 24 - 07/10/2004
C-JDBC Controller
MySQL
C-JDBC driver
MySQL
Virtual database 1
Database Backend
Connection Manager
Database Backend
Connection Manager
Request Manager
Query result cache
Scheduler
Load balancer
MySQL JDBC driver
MySQL JDBC driver
Recovery Log
Authentication Manager
MySQL
Database Backend
Connection Manager
MySQL JDBC driver
C-JDBC driver
Client application (Servlet, EJB, ...)
Client application (Servlet, EJB, ...)
Failures
No 2 phase-commitparallel
transactionsfailed nodes are
automatically disabled
execute INSERT INTO t …
![Page 25: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/25.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 25 - 07/10/2004
Controller replication
Prevent the controller from being a single point of failure
Group communication for controller synchronization
C-JDBC driver supports multiple controllers with automatic failover
MySQL PostgreSQL
C-JDBC Controller
MySQL JDBC driver
PostgreSQL JDBC driver
C-JDBC driver
JVM
Java client program
C-JDBC driver
JVM
Java client program
C-JDBC driver
JVM
Java client program
C-JDBC driver
JVM
Java client program
C-JDBC Controller
JGroups
MySQLPostgreSQL
MySQL JDBC driver
PostgreSQL JDBC driver
jdbc:c-jdbc://node1:25322,node2:12345/myDB
![Page 26: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/26.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 26 - 07/10/2004
Controller replication
C-JDBC Controller
Distributed Request Manager
C-JDBC Controller
Distributed Request Manager
MySQL
C-JDBC driver
MySQL
Virtual database 1
Database Backend
Connection Manager
Database Backend
Connection Manager
MySQL JDBC driver
MySQL JDBC driver
Virtual database 2
Database Backend
Connection Manager
Database Backend
Connection Manager
Request Manager
Query result cache
Scheduler
Load balancer
Authentication Manager
Oracle JDBC driver
OracleMySQL
MySQL JDBC driver
C-JDBC driver
Client application (Servlet, EJB, ...)
C-JDBC driver
Client application (Servlet, EJB, ...)
Client application (Servlet, EJB, ...)
Request Manager
Query result cache
Scheduler
Load balancer
Authentication Manager
jdbc:cjdbc://node1,node2/myDB
Uniform total order reliable multicast
![Page 27: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/27.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 27 - 07/10/2004
Mixing 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
![Page 28: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/28.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 28 - 07/10/2004
Lessons learned
SQL parsing cannot be genericmany discrepancies in JDBC implementationsminimize the use of group communications
IP multicast does not scale
notification infrastructure neededusers want
no single point of failurecontrol (monitoring, plug-able recovery policies, …)no database vendor locking no database modification
need for an exhaustive test suitebenchmarking accurately is very difficult
load injection requires resourcesmonitoring and exploiting results is tricky
![Page 29: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/29.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 29 - 07/10/2004
Sardes role in GORDA
provide inputGORDA APIsgroup communication requirementsmonitoring and management requirements
middleware implementation based on C-JDBCdissemination effort
ObjectWebpossible participation to JCP for JDBC extensions
hardware resources for experimentseCommerce benchmarks
![Page 30: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/30.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 30 - 07/10/2004
Other interests
LeWYS (http://lewys.objectweb.org)monitoring infrastructuregeneric hardware/kernel probes for Linux/Windowssoftware probes: JMX, SNMP, …monitoring repository
autonomic behaviorbuilding supervision loopsself-healing clustersself-sizing (expand or shrink)SLAs
![Page 31: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/31.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 31 - 07/10/2004
Q without A
do we consider distributed query execution?XA support?cluster size targeted?do we target grids or cluster of clusters?
reconciliationconsistency/cachingnetwork architecture considered?
are relaxed or loose consistency options?what will really cover the GRI?
do we impose a specific way of doing replication?access to read-set/write-set difficult to implement with legacy
databaseswhich workloads are considered?which WP deals with backup/recovery?licensing issues?
![Page 32: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/32.jpg)
Q&A_________
Thanks to all users and contributors ...
![Page 33: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/33.jpg)
Bonus slides
![Page 34: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/34.jpg)
INTERNALS
![Page 35: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/35.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 35 - 07/10/2004
Virtual Database
MySQL
C-JDBC driver
Java client program
(Servlet, EJB, ...)
MySQL
Virtual database
Database Backend
Connection Manager
Database Backend
Connection Manager
Request Manager
Request Cache
Scheduler
Load balancer
MySQL JDBC driver
MySQL JDBC driver
Recovery Log
Authentication Manager
MySQL
Database Backend
Connection Manager
MySQL JDBC driver
gives the view of a single database
establishes the mapping between the database name used by the application and the backend specific settings
backends can be added and removed dynamically
configured using an XML configuration file
![Page 36: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/36.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 36 - 07/10/2004
Authentication Manager
MySQL
C-JDBC driver
Java client program
(Servlet, EJB, ...)
MySQL
Virtual database
Database Backend
Connection Manager
Database Backend
Connection Manager
Request Manager
Request Cache
Scheduler
Load balancer
MySQL JDBC driver
MySQL JDBC driver
Recovery Log
Authentication Manager
MySQL
Database Backend
Connection Manager
MySQL JDBC driver
Matches real login/password used by the application with backend specific login/ password
Administrator login to manage the virtual database
![Page 37: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/37.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 37 - 07/10/2004
Scheduler
MySQL
C-JDBC driver
Java client program
(Servlet, EJB, ...)
MySQL
Virtual database
Database Backend
Connection Manager
Database Backend
Connection Manager
Request Manager
Request Cache
Scheduler
Load balancer
MySQL JDBC driver
MySQL JDBC driver
Recovery Log
Authentication Manager
MySQL
Database Backend
Connection Manager
MySQL JDBC driver
Manages concurrency controlSpecific implementations for
Single DB, RAIDb 0, 1 and 2Query-levelOptimistic and pessimistic
transaction leveluses the database schema that is
automatically fetched from backends
![Page 38: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/38.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 38 - 07/10/2004
Request cache
MySQL
C-JDBC driver
Java client program
(Servlet, EJB, ...)
MySQL
Virtual database
Database Backend
Connection Manager
Database Backend
Connection Manager
Request Manager
Request Cache
Scheduler
Load balancer
MySQL JDBC driver
MySQL JDBC driver
Recovery Log
Authentication Manager
MySQL
Database Backend
Connection Manager
MySQL JDBC driver
caches results from SQL requestsimproved SQL statement analysis to
limit cache invalidationstable based invalidationscolumn based invalidationssingle-row SELECT optimization
request parsing possible in theC-JDBC driver
offload the controllerparsing caching in the driver
![Page 39: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/39.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 39 - 07/10/2004
Load balancer 1/2
MySQL
C-JDBC driver
Java client program
(Servlet, EJB, ...)
MySQL
Virtual database
Database Backend
Connection Manager
Database Backend
Connection Manager
Request Manager
Request Cache
Scheduler
Load balancer
MySQL JDBC driver
MySQL JDBC driver
Recovery Log
Authentication Manager
MySQL
Database Backend
Connection Manager
MySQL JDBC driver
RAIDb-0query directed to the backend having the
needed tables
RAIDb-1read executed by current threadwrite executed in parallel by a dedicated
thread per backendresult returned if one, majority or all commitif one node fails but others succeed, failing
node is disabled
RAIDb-2same as RAIDb-1 except that writes are
sent only to nodes owning the written table
![Page 40: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/40.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 40 - 07/10/2004
Load balancer 2/2
MySQL
C-JDBC driver
Java client program
(Servlet, EJB, ...)
MySQL
Virtual database
Database Backend
Connection Manager
Database Backend
Connection Manager
Request Manager
Request Cache
Scheduler
Load balancer
MySQL JDBC driver
MySQL JDBC driver
Recovery Log
Authentication Manager
MySQL
Database Backend
Connection Manager
MySQL JDBC driver
Static load balancing policiesRound-Robin (RR)Weighted Round-Robin (WRR)
Least Pending Requests First (LPRF)
request sent to the node that has the shortest pending request queue
efficient if backends are homogeneous in terms of performance
![Page 41: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/41.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 41 - 07/10/2004
Connection Manager
MySQL
C-JDBC driver
Java client program
(Servlet, EJB, ...)
MySQL
Virtual database
Database Backend
Connection Manager
Database Backend
Connection Manager
Request Manager
Request Cache
Scheduler
Load balancer
MySQL JDBC driver
MySQL JDBC driver
Recovery Log
Authentication Manager
MySQL
Database Backend
Connection Manager
MySQL JDBC driver
Connection pooling for a backend
Simple : no poolingRandomWait : blocking poolFailFast : non-blocking poolVariablePool : dynamic pool
Connection pools defined on a per login basis
resource management per logindedicated connections for admin
![Page 42: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/42.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 42 - 07/10/2004
Recovery Log
MySQL
C-JDBC driver
Java client program
(Servlet, EJB, ...)
MySQL
Virtual database
Database Backend
Connection Manager
Database Backend
Connection Manager
Request Manager
Request Cache
Scheduler
Load balancer
MySQL JDBC driver
MySQL JDBC driver
Recovery Log
Authentication Manager
MySQL
Database Backend
Connection Manager
MySQL JDBC driver
Checkpoints are associated with database dumps
Record all updates and transaction markers since a checkpoint
Used to resynchronize a database from a checkpoint
JDBCRecoveryLogstore information in a databasecan be re-injected in a C-JDBC
cluster for fault tolerance
![Page 43: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/43.jpg)
SCALABILITY
![Page 44: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/44.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 44 - 07/10/2004
C-JDBC scalability
Horizontal scalabilityprevents the controller to be a Single Point Of Failure
(SPOF)distributes the load among several controllersuses group communications for synchronization
C-JDBC Drivermultiple controllers automatic failover
jdbc:c-jdbc://node1:25322,node2:12345/myDB
connection cachingURL parsing/controller lookup caching
![Page 45: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/45.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 45 - 07/10/2004
C-JDBC scalability
Vertical scalabilityallows nested RAIDb levelsallows tree architecture for scalable write broadcastnecessary with large number of backendsC-JDBC driver re-injected in C-JDBC controller
![Page 46: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/46.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 46 - 07/10/2004
C-JDBC vertical scalability
RAIDb-1-1with C-JDBC
no limit tocompositiondeepness
MySQL JDBC driver
C-JDBC driver
MySQL JDBC driver MySQL JDBC driver
C-JDBC controller RAIDb-1
C-JDBC controller RAIDb-1
C-JDBC controller RAIDb-1
C-JDBC controller RAIDb-1
C-JDBC driverJVM
Client program C-JDBC
driver
JVM
Client program
C-JDBC driver
JVM
Client program
MySQL MySQL MySQL MySQL MySQL MySQLMySQLMySQL
![Page 47: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/47.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 47 - 07/10/2004
C-JDBC vertical scalability
table x & ytable x & y
DB native JDBC driver
table x & y
C-JDBC driver
table w table w
DB native JDBC driver
table z
DB native JDBC driver
table z
C-JDBC controller RAIDb-0
C-JDBC controller RAIDb-1
C-JDBC controller RAIDb-1
C-JDBC controller RAIDb-1
C-JDBC driverJVM
Client program C-JDBC
driver
JVM
Client program
C-JDBC driver
JVM
Client programRAIDb-0-1
with C-JDBC
![Page 48: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/48.jpg)
CHECKPOINTING
![Page 49: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/49.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 49 - 07/10/2004
Fault tolerant recovery log
C-JDBC Controller
MySQL MySQL
Application virtual database
Database Backend
Database Backend
Request Manager
Request Cache
Scheduler
Load balancer
Recovery Log
Authentication Manager
MySQL
Database Backend
Recovery virtual database
Request Manager
SchedulerLoad balancer
Authentication Manager
C-JDBC driver
Client application (Servlet, EJB, ...)
Checkpointing service
Database Backend
Database Backend
C-JDBC driver
MySQL
UPDATE statement
![Page 50: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/50.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 50 - 07/10/2004
Checkpointing
Octopus is an ETL tool Use Octopus to store a dump of
the initial database state Currently done by the user using
the database specific dump tool
PostgreSQL
C-JDBC Controller
PostgreSQL JDBC driver
C-JDBC driver
JVM
EJB Container JOnAS, WebLogic,
JBoss, WebSphere, ...
disabled
dump for initial
checkpoint
Recovery LogOctopus
disabled
![Page 51: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/51.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 51 - 07/10/2004
Checkpointing
Backend is enabled All database updates are logged
(SQL statement, user, transaction, …)
PostgreSQL
C-JDBC Controller
PostgreSQL JDBC driver
C-JDBC driver
JVM
EJB Container JOnAS, WebLogic,
JBoss, WebSphere, ...
enabled
dump for initial
checkpoint
Recovery LogOctopus
JDBC Recovery Log
enabled
![Page 52: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/52.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 52 - 07/10/2004
Checkpointing
Add new backends while system online
Restore dump corresponding to initial checkpoint with Octopus
PostgreSQL
C-JDBC Controller
PostgreSQL JDBC driver
C-JDBC driver
JVM
EJB Container JOnAS, WebLogic,
JBoss, WebSphere, ...
dump for initial
checkpoint
Recovery Log
Octopus
PostgreSQL PostgreSQLdisabled disabledenabled
enabled
JDBC Recovery Log
![Page 53: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/53.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 53 - 07/10/2004
Checkpointing
Replay updates from the log
PostgreSQL
C-JDBC Controller
PostgreSQL JDBC driver
C-JDBC driver
JVM
EJB Container JOnAS, WebLogic,
JBoss, WebSphere, ...
dump for initial
checkpoint
Recovery Log
Octopus
PostgreSQL PostgreSQLenabled
enabled
JDBC Recovery Log
disableddisabled
![Page 54: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/54.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 54 - 07/10/2004
Checkpointing
Enable backends when done
PostgreSQL
C-JDBC Controller
PostgreSQL JDBC driver
C-JDBC driver
JVM
EJB Container JOnAS, WebLogic,
JBoss, WebSphere, ...
dump for initial
checkpoint
Recovery Log
Octopus
PostgreSQL PostgreSQLenabled
enabled
JDBC Recovery Log
enabledenabled
![Page 55: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/55.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 55 - 07/10/2004
Making new checkpoints
Disable one backend to have a coherent snapshot
Mark the new checkpoint entry in the log
Use Octopus to store the dump
...
dump for last
checkpoint
PostgreSQL
C-JDBC Controller
PostgreSQL JDBC driver
C-JDBC driver
JVM
EJB Container JOnAS, WebLogic,
JBoss, WebSphere, ...
dump for last
checkpoint
Recovery Log
Octopus
PostgreSQL PostgreSQLenabled
enabled
JDBC Recovery Log
enableddisabled
dump for initial
checkpoint
![Page 56: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/56.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 56 - 07/10/2004
Making new checkpoints
Replay missing updates from log
dump for
checkpoint
Octopus...
dump for last
checkpoint
dump for last
checkpoint
dump for initial
checkpoint
PostgreSQL
C-JDBC Controller
PostgreSQL JDBC driver
C-JDBC driver
JVM
EJB Container JOnAS, WebLogic,
JBoss, WebSphere, ...
Recovery Log
PostgreSQL PostgreSQLenabled
enabled
JDBC Recovery Log
disabled enabled
![Page 57: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/57.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 57 - 07/10/2004
Making new checkpoints
Re-enable backend when done
PostgreSQL
C-JDBC Controller
PostgreSQL JDBC driver
C-JDBC driver
JVM
EJB Container JOnAS, WebLogic,
JBoss, WebSphere, ...
dump for
checkpoint
Recovery Log
Octopus
PostgreSQL PostgreSQLenabled
enabled
JDBC Recovery Log
enabledenabled
...
dump for last
checkpoint
dump for last
checkpoint
dump for initial
checkpoint
![Page 58: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/58.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 58 - 07/10/2004
Recovery
A node fails!Automatically
disabled but should be fixed or changed by administrator
PostgreSQL
C-JDBC Controller
PostgreSQL JDBC driver
C-JDBC driver
JVM
EJB Container JOnAS, WebLogic,
JBoss, WebSphere, ...
dump for
checkpoint
Recovery Log
Octopus
PostgreSQL PostgreSQLenabled
enabled
JDBC Recovery Log
enableddisabled
...
dump for last
checkpoint
dump for last
checkpoint
dump for initial
checkpoint
![Page 59: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/59.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 59 - 07/10/2004
Recovery
Restore latest dump with Octopus
...
dump for last
checkpoint
PostgreSQL
C-JDBC Controller
PostgreSQL JDBC driver
C-JDBC driver
JVM
EJB Container JOnAS, WebLogic,
JBoss, WebSphere, ...
dump for last
checkpoint
Recovery Log
Octopus
PostgreSQL PostgreSQLenabled
enabled
JDBC Recovery Log
enableddisabled
dump for initial
checkpoint
![Page 60: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/60.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 60 - 07/10/2004
Recovery
Replay missing updates from log
dump for
checkpoint
Octopus...
dump for last
checkpoint
dump for last
checkpoint
dump for initial
checkpoint
PostgreSQL
C-JDBC Controller
PostgreSQL JDBC driver
C-JDBC driver
JVM
EJB Container JOnAS, WebLogic,
JBoss, WebSphere, ...
Recovery Log
PostgreSQL PostgreSQLenabled
enabled
JDBC Recovery Log
disabled enabled
![Page 61: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/61.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 61 - 07/10/2004
Recovery
Re-enable backend when done
PostgreSQL
C-JDBC Controller
PostgreSQL JDBC driver
C-JDBC driver
JVM
EJB Container JOnAS, WebLogic,
JBoss, WebSphere, ...
dump for
checkpoint
Recovery Log
Octopus
PostgreSQL PostgreSQLenabled
enabled
JDBC Recovery Log
enabledenabled
...
dump for last
checkpoint
dump for last
checkpoint
dump for initial
checkpoint
![Page 62: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/62.jpg)
HORIZONTAL SCALABILITY
![Page 63: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/63.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 63 - 07/10/2004
Horizontal scalability
JGroups for controller synchronizationGroups messages for writes only
DB1 DB2 DB3 DB4
Controller1
DB1 DB2 DB3 DB4
Controller1 Controller2
Client 1 Client... Client n Client 1 Client... Client n
![Page 64: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/64.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 64 - 07/10/2004
Horizontal scalability
Centralized write approach issues
Issues with transactions assigned to connections
DB1 DB2 DB3 DB4
Controller1 Controller2
commit
DB1 DB2 DB3 DB4
Controller1 Controller2
commit
commit commit
DB1 DB2 DB3 DB4
Controller2
? ? ? ?
DB1 DB2
Controller1 Controller2
DB1 DB2
Controller1 Controller2
T1(Read)
T1(R)
DB1 DB2
Controller1 Controller2
T1(Write)
T1(R)T1(W) T2(W)
![Page 65: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/65.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 65 - 07/10/2004
Horizontal scalability
General case for a write query3 multicast + 2n unicast
DistributedVirtualDatabase@controller2
DistributedRequestManager
DistributedVirtualDatabase@controller3
DistributedVirtualDatabase@controller1
DistributedRequestManager
DistributedRequestManager
execWriteRequest(AbstractWriteRequest)
Scheduler
Write query handler
Load Balancer
Scheduler
Load Balancer
Distributed scheduling handler
Wait for schedulers replies
Send request to all controllers
Send execute request order to all controllers
Wait for load balancer replies
Distributed load balancer handler
Scheduler
Load Balancer
Distributed scheduling handler
Distributed load balancer handler
Notify controllers of completion success or not
Distributed scheduling handler
Distributed load balancer handler
Notify scheduler of completion
Return result
return result
Notify scheduler of completion
Notify scheduler of completion
![Page 66: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/66.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 66 - 07/10/2004
Horizontal scalability
Solution: No backend sharing1 multicast + n unicast [+ 1 multicast]
DB1 DB2 DB3 DB4 DB5 DB6
Controller1 Controller2 Controller3
DistributedVirtualDatabase@controller2
DistributedVirtualDatabase@controller3
DistributedVirtualDatabase@controller1
DistributedRequestManager
DistributedRequestManager
execWriteRequest(AbstractWriteRequest)DistributedRequestManager
Scheduler
Write query handler
Load Balancer
Scheduler
Load Balancer
Distributed scheduling handler
Send request to all controllers
Wait for load balancer replies
Distributed load balancer handler
Scheduler
Load Balancer
Distributed scheduling handler
Distributed load balancer handler
Notify controller(s) that have failed if other have succeeded
Distributed scheduling handler
Distributed load balancer handler
Wait if all backends failed
Return result
return result
Wait if all backends failed
Wait if all backends failed
![Page 67: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/67.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 67 - 07/10/2004
Horizontal scalability
Issues with JGroupsresources needed by a channelinstability of throughput with UDPperformance scalability
TCP better than UDP butunable to disable reliability on top of TCPunable to disable garbage collectionordering implementation is sub-optimal
Need for a new group communication layer optimized for cluster
![Page 68: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/68.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 68 - 07/10/2004
Horizontal scalability
JGroups performance on UDP/FastEthernet
![Page 69: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/69.jpg)
USE CASES
![Page 70: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/70.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 70 - 07/10/2004
Budget High Availability
High availability infrastructure “on a budget”
Typical eCommercesetup
http://www.budget-ha.com
![Page 71: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/71.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 71 - 07/10/2004
OpenUSS: University Support System
eLearningHigh availabilityPortability
Linux, HP-UX, Windows
InterBase, Firebird, PostgreSQL, HypersonicSQL
http://openuss.sourceforge.net
Firebird
C-JDBC Controller Full replication
Firebird JDBC driver
Firebird
C-JDBC driver
JVM
C-JDBC driver
JVM
C-JDBC Controller Full replication
Firebird JDBC driver
C-JDBC driver
JVM
JOnAS J2EE server
C-JDBC driver
JVM
Enhydra server
OpenUSS OpenUSS OpenUSS OpenUSS
Enhydra Director
Apache
JOnAS J2EE server
Enhydra server
JOnAS J2EE server
Enhydra server
JOnAS J2EE server
Enhydra server
Enhydra Director
Apache
Enhydra Director
Apache
![Page 72: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/72.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 72 - 07/10/2004
Flood alert system
Disaster recovery Independent nodes synchronized with C-JDBC VPN for security issues
http://floodalert.org
MySQL
C-JDBC Controller Full replication
MySQL JDBC driver
C-JDBC driver
JBoss J2EE server
Flood alert system
MySQL
C-JDBC Controller Full replication
MySQL JDBC driver
C-JDBC driver
JBoss J2EE server
Flood alert system
MySQL
C-JDBC Controller Full replication
MySQL JDBC driver
C-JDBC driver
JBoss J2EE server
Flood alert system
> 1000 miles
![Page 73: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/73.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 73 - 07/10/2004
J2EE benchmarking
Large scaleJ2EE clusters
http://jmob.objectweb.org
Internet
emulated users
![Page 74: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/74.jpg)
PERFORMANCE
![Page 78: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/78.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 78 - 07/10/2004
Result cache
Cache contains a list of SQL->ResultSetPolicy defined by queryPattern->Policy3 policies
EagerCaching: variable granularities for invalidationsRelaxedCaching: invalidations based on timeoutNoCaching: never cached
RUBiS bidding mixwith 450 clients
No cache Coherentcache
Relaxedcache
Throughput (rq/min) 3892 4184 4215
Avg response time 801 ms 284 ms 134 ms
Database CPU load 100% 85% 20%
C-JDBC CPU load - 15% 7%
![Page 79: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/79.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 79 - 07/10/2004
Outline
MotivationsRAIDbC-JDBCPerformanceLessons learnedConclusion
![Page 80: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/80.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 80 - 07/10/2004
Open problems
Partition of clustersUsers want control on
failure policyReconciliation must
also be user controlled
PostgreSQL
C-JDBC Controller
C-JDBC driver
JVM
Java client program
C-JDBC driver
JVM
Java client program
C-JDBC driver
JVM
Java client program
C-JDBC driver
JVM
Java client program
C-JDBC Controller
JavaGroups
PostgreSQL
![Page 81: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/81.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 81 - 07/10/2004
LeWYS overview
Monitoring Pump
CPUprobe
diskprobe
pumpthread
DREAM
Monitoring Pump
CPUprobe
memoryprobe
pumpthread
DREAM
DREAM
DREAM
DREAM
Monitoring Pump
pumpthread
CPUprobe
networkprobe
ObserverObserver
Observer ObserverMonitoringrepository
![Page 82: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/82.jpg)
LeWYS
![Page 83: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/83.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 83 - 07/10/2004
LeWYS components
Library of probeshardware resources: cpu, memory, disk, networkgeneric sensors: SNMP, JMX, JVMPI, …
Monitoring pumpdynamic deployment of sensorsmanages monitoring leases
Event channelspropagate monitored events to interested observersallows for filtering, aggregation, content-based processing, …
Optional monitoring repository
![Page 84: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/84.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 84 - 07/10/2004
LeWYS design choices
Component-based frameworkprobes, monitoring pump, event channelsprovides (re)configurability capabilities
Minimize intrusiveness on monitored nodes
No global clocktimestamp generated locally by pump
Information processing in DREAM channels
![Page 85: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/85.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 85 - 07/10/2004
Centralized monitoring using a monitoring repository (1)
Monitoring Pump
CPUprobe
memoryprobe
pumpthreadDREAM
Monitoring Pump
CPUprobe
memoryprobe
pumpthreadDREAM
Monitoring Repository
Monitoring DB
storagethread
querythreads
Monitoring Console
eventsubscribeservice
![Page 86: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/86.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 86 - 07/10/2004
Centralized monitoring using a monitoring repository (2)
Monitoring repositorystores monitoring informationservice to retrieve monitoring information
ProsDB allows for storing large amount of datapowerful queries
correlate data from various probes at different locationsresynchronize clocks
browsing history to diagnose failuresuse history for system provisioning
Consrequires a DB (heavy weight solution)
![Page 87: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/87.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 87 - 07/10/2004
Outline
J2EE Cluster
Group communications
MonitoringmotivationsLeWYSimplementation
Status & Perspectives
![Page 88: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/88.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 88 - 07/10/2004
Monitoring pump implemention
Component
Pro
beF
acto
ry
MonitoringPump
Thread
Probe
MonitoringPumpManager
ChannelOut
Pro
beM
anag
erBindingController
Probe
Probe
Repository
ProbeManager
OutputManager
Component
PullPushMultiplexerM
onitoringMumpManager
OutputManager
TimeStamp
Probe
Cache
Cac
hed
Pro
be
RMI
![Page 89: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/89.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 89 - 07/10/2004
Hardware Probes
Pure Java probesusing /proccost: 0.01ms/call (Linux)
Linux Solaris
/proc
Hardware resources
Windows
.DLLC C
Linux
C
JNI JNI JNI
cpu, mem, disk, net,
kernel, …probes
cpu, … probes… …
![Page 90: GORDA Kickoff meeting INRIA – Sardes project Emmanuel Cecchet Sara Bouchenak.](https://reader035.fdocuments.in/reader035/viewer/2022081603/56649e195503460f94b06ba4/html5/thumbnails/90.jpg)
http://c-jdbc.objectweb.org/ - [email protected] 90 - 07/10/2004
Software Probes
Application level monitoringJMXad-hoc
JVM
Linux Solaris
JVM
Hardware resources
WindowsLinux
JMX JVMPI
SNMP, ad-hoc,
… probes
JVM probesJMX based
probes