[email protected] ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

41
[email protected] ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source

Transcript of [email protected] ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

Page 1: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

[email protected]

ObjectWeb Architecture Meeting, 25 sept 03

Our experience of open source

Page 2: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 2

Outline

Why and how?C-JDBC communityArchitectural concernsConclusion

Page 3: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 3

Why did we design ?

Scalability evaluation of J2EE servers performance bounded by database even with a single server how to compare middleware performance ? how to evaluate clustering features in J2EE servers ?

Solutions Large SMP machine: too expensive Open source solution: do it yourself!

Features we wanted ordered by priority scalability on commodity hardware using open source databases fault tolerance (high availability + failover) without modifying the client application

Page 4: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 4

Internet

EJBServletsApache Databases

How do we want to use ?

From small dynamic content web sites using a centralized open source database

To an end-to-end open source solution for large scale J2EE clustered application servers

Page 5: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 5

Why users are using ?

JDBC standardOpen source solutionFeatures they want ordered by priority

fault tolerance (high availability + failover) [was 4/5]using open source existing databases [was 3/5]on commodity hardware [was 2/5]administration tools [was not]security [was not]scalability [was 1/5]without modifying the client application [was 5/5]

Page 6: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 6

How users are using ?

Hard to really knowJust default settings!Most common usage

existing applications (Tomcat/JBoss/JOnAS) with one MySQL/Postgres backend

add a second backend for fault tolerance and scalability

For things it was not designed forwrite mostly workloadsdistributed databaseshosting centers (administration tools missing)

Page 7: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 7

Lessons learned

Users do not use it for what it was first designed foradvanced features are never usedconcerned about ease of use and TCO

Default settings are importantGood technology is necessary but not

sufficient[administration] tools are neededbugs are ok

Page 8: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 8

Outline

Why and how?C-JDBC communityArchitectural concernsConclusion

Page 9: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 9

Stats as of Sep 25, 03

Downloadstotal : > 5200 downloads since may 2003last 30 days : > 1700 downloads2nd most downloaded ObjectWeb project

Mailing [email protected]: 93 [email protected]: 16 subscribers

Web site> 100.000 hits for september 03US 35%, EU 25%, Canada 5%, Australia 5%, China 3%,

Brazil 2%, India 2%, Japan 2%, …

Page 10: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 10

Freshmeat.net

Links to projectsUsers can subscribe to

be notified of new releases

Need to register project in all possible categories to have good visibility

One release per week is a good timing

3 new subscribers with every release

SlashdotWeeklyrelease

Fridayrelease

out oftown

Page 11: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 11

How do we build a community?

Necessary features (but not sufficient)open sourcestandard APIresponsiveness on the mailing list

VisibilityWeb: slashdot, TheServerSide, freshmeat, …Conferences: JAX, Middleware, LinuxWorld, ICAR, …

Our weak pointsno detailed design documentationbeta phase

Page 12: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 12

How do we interact with the user community?

only one mailing listbeing very responsive on the mailing list

reply even if we don’t have a response yetno direct communication with team but share everything

on the mailing list

benefit from engineers who work 1 week full-time to evaluate C-JDBC for their corporation

plan every feature request in the task list

Page 13: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 13

How do we interact with the developer community?

single user/developer mailing listpost all design questions/choices on the mailing

listmost users use default settingshard to get feedback about usage

very permissive to accept new commiters8 committers (3 outside ObjectWeb – 2 full time)2 contributors who didn’t want to become commitersno problem so far

involve people in testing

Page 14: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 14

Lessons learned

Visibilityperpetual involvementtime consuming but necessary

Responsiveness to user queriesalways on the mailing listmakes first impression for many users

Involve users in all decisionsBe open

source, CVS, contributions, patches, …

Page 15: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 15

Outline

Why and how?C-JDBC communityArchitectural concerns

C-JDBC overviewOctopus integrationClusteringOpen problems

Conclusion

Page 16: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 16

C-JDBC

Redundant Array of Inexpensive Databases (RAIDb) RAIDb-0: full partitioning RAIDb-1: full replication RAIDb-2: partial replication

Two components generic JDBC 2.0 driver (C-JDBC driver) C-JDBC Controller

C-JDBC Controller provides scheduler for concurrency control load balancer for performance recovery log for fault tolerance

Supports heterogeneous databases

quick facts

Page 17: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 17

Overview of

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 18: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 18

TPC-W Performance

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 DB

RAIDb-0

RAIDb-1

RAIDb-2

Page 19: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 19

Outline

Why and how?C-JDBC communityArchitectural concerns

C-JDBC overviewOctopus integrationClusteringOpen problems

Conclusion

Page 20: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 20

Octopus integration

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 21: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 21

Octopus integration

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 22: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 22

Octopus integration

Add new backends while being 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 23: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 23

Octopus integration

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 24: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 24

Octopus integration

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 25: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 25

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 26: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 26

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 27: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 27

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 28: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 28

Fault tolerance

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 29: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 29

Fault tolerance

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 30: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 30

Fault tolerance

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 31: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 31

Fault tolerance

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 32: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 32

Outline

Why and how?C-JDBC communityArchitectural concerns

C-JDBC overviewOctopus integrationClusteringOpen problems

Conclusion

Page 33: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 33

Clustering

JavaGroups everywhereperformance and scalability study needed

Administrationintegration of various consoles (Tomcat, JOnAS, …)common vocabulary neededJMX is standard

Internet

EJBServletsApache Databases

Page 34: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 34

Clustering continued …

Monitoring framework neededhealth of the systembuilding efficient load balancing algorithms

JMX performance impact?resource usagedesign patternsresults to be published in JMOB

User consoletext, Swing and/or HTTP ?SQuirreL SQL or iSQL for JDBC console

Page 35: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 35

Outline

Why and how?C-JDBC communityArchitectural concerns

C-JDBC overviewOctopus integrationClusteringOpen problems

Conclusion

Page 36: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 36

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 37: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 37

Open problems

Opening the architecture to the usersuser defined strategies when a fault or exception occurswhich interfaces/callbacks to provide ?

Monitoring needed for more accurate load balancing algorithms

Benchmarkingneed automatic evaluation of clustered serversplatform available: new INRIA 208 itanium-2 cluster

Sun Test Suiteshould help strenghening C-JDBC codeinteroperability with J2EE servers

Page 38: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 38

Fractal ?

Fractal version of C-JDBCBenefits for C-JDBC

short term: good question !long term: resource usage tracing

Benefits for Fractalfeedbackperformance comparison with POJO version

Page 39: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 39

Outline

Why and how?C-JDBC communityArchitectural concernsConclusion

Page 40: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 40

Conclusion

Integration of “coarse grain” ObjectWeb components

Standard APIs (not OW defined) allows easy interaction with other components (OW or not)

Common tools needed for administration and monitoring

Page 41: Emmanuel.cecchet@inria.fr ObjectWeb Architecture Meeting, 25 sept 03 Our experience of open source.

ObjectWeb Architecture Meeting – 25 sep. 2003 – [email protected] 41

Heterogeneity support

application alreadywritten for a specific[commercial] database

user defined rulesfor on-the-fly queryrewriting to executeon heterogeneousbackends

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, ...