Presentation is loading. Please wait.

Presentation is loading. Please wait.

JOnAS developer workshop – - 1 - 23/02/2004 status Emmanuel Cecchet

Similar presentations


Presentation on theme: "JOnAS developer workshop – - 1 - 23/02/2004 status Emmanuel Cecchet"— Presentation transcript:

1 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 1 - 23/02/2004 status Emmanuel Cecchet c-jdbc@objectweb.org

2 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 2 - 23/02/2004 Outline  Overview  Advanced concepts  Query caching  Horizontal scalability  Monitoring  Perspectives

3 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 3 - 23/02/2004 Motivations  J2EE performance scalability bounded by database performance  Database tier must be –scalable –fault tolerant (high availability + failover) –without modifying the client application –using open source databases –on commodity hardware

4 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 4 - 23/02/2004 Internet How do we want to use ? end-to-end open source solution for large scale J2EE clustered application servers cost-effective solution for both small and large configurations Apache MySQL

5 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 5 - 23/02/2004 Redundant Array of Inexepensive Databases  RAIDb controller –gives the view of a single database to the client –balance the load on the database backends  RAIDb levels –RAIDb-0: full partitioning –RAIDb-1: full mirroring –RAIDb-2: partial replication –composition possible

6 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 6 - 23/02/2004 C-JDBC  Middleware implementing RAIDb  Two components –generic JDBC 2.0 driver (C-JDBC driver) –C-JDBC Controller  C-JDBC Controller provides –performance scalability –high availability –failover –caching, logging, monitoring, …  Supports heterogeneous databases

7 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 7 - 23/02/2004 Using JOnAS with C-JDBC Without C-JDBC Database JDBC Driver

8 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 8 - 23/02/2004 Pooling Cache Controller Database Virtual Driver Using JOnAS with C-JDBC  Update the datasource to use the C-JDBC driver Backend JDBC Driver JOnAS

9 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 9 - 23/02/2004 What C-JDBC offers  No application modification  No JOnAS modification  No database modification Database Virtual Backend Backend recovery Pooling Cache Controller Database Virtual JDBC Driver Load balancing Driver

10 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 10 - 23/02/2004 Outline  Overview  Advanced concepts  Query caching  Horizontal scalability  Monitoring  Perspectives

11 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 11 - 23/02/2004 Inside the Controller Sockets JMX

12 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 12 - 23/02/2004 Fault tolerant recovery log

13 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 13 - 23/02/2004 Cascading controller

14 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 14 - 23/02/2004 Heterogeneity support  application already written for a specific [commercial] database  user defined rules for on-the-fly query rewriting to execute on heterogeneous backends

15 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 15 - 23/02/2004 Outline  Overview  Advanced concepts  Query caching  Horizontal scalability  Monitoring  Perspectives

16 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 16 - 23/02/2004 Query caching status  Cache contains a list of SQL->ResultSet  Policy defined by queryPattern->Policy  3 policies –EagerCaching: variable granularities for invalidations –RelaxedCaching: invalidations based on timeout –NoCaching: never cached RUBiS bidding mix with 450 clients No cacheCoherent cache Relaxed cache Throughput (rq/min)389241844215 Avg response time801 ms284 ms134 ms Database CPU load100%85%20% C-JDBC CPU load-15%7%

17 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 17 - 23/02/2004 RUBiS - Tomcat without C-JDBC caching Tomcat ~50% cpu 1 Database 100% cpu Throughput: 3900 pages/min

18 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 18 - 23/02/2004 RUBiS - Tomcat with C-JDBC relaxed caching Tomcat ~55% cpu 1 Database ~20% cpu Throughput: 4200 pages/min C-JDBC <10% cpu

19 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 19 - 23/02/2004 JOnAS and C-JDBC query caching RUBiS Throughput (req/min) Response time (ms) No cache Servlet38904140744310 JOnAS SF CMP 1.1 2947341829292045 JOnAS CMP 2.0 2178245063724630

20 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 20 - 23/02/2004 Outline  Overview  Advanced concepts  Query caching  Horizontal scalability  Monitoring  Perspectives

21 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 21 - 23/02/2004 Horizontal scalability  JGroups for controller synchronization  Groups messages for writes only

22 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 22 - 23/02/2004 Horizontal scalability  Centralized write approach issues  Issues with transactions assigned to connections

23 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 23 - 23/02/2004 Horizontal scalability  General case for a write query –3 multicast + 2n unicast

24 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 24 - 23/02/2004 Horizontal scalability  Solution: No backend sharing –1 multicast + n unicast [+ 1 multicast]

25 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 25 - 23/02/2004 Horizontal scalability  Issues with JGroups –resources needed by a channel –instability of throughput with UDP –performance scalability  TCP better than UDP but –unable to disable reliability on top of TCP –unable to disable garbage collection –ordering implementation is sub-optimal  Need for a new group communication layer optimized for cluster

26 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 26 - 23/02/2004 Horizontal scalability  JGroups performance on UDP/FastEthernet

27 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 27 - 23/02/2004 Outline  Overview  Advanced concepts  Query caching  Horizontal scalability  Monitoring  Perspectives

28 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 28 - 23/02/2004 Design choices  JMX for both administration and monitoring –JMX server is MX4J  HTTP console for basic features but not suited for monitoring  Swing console for monitoring –uses JMX/RMI connector  Currently working on a scalable monitoring infrastructure

29 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 29 - 23/02/2004 Online Monitoring

30 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 30 - 23/02/2004 Viewing logs remotely

31 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 31 - 23/02/2004 Outline  Overview  Advanced concepts  Query caching  Horizontal scalability  Monitoring  Perspectives

32 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 32 - 23/02/2004 Current status  C-JDBC 1.0 rc2 release  Web site: >100.000 hits per month  Downloads: >1200 per month  Mailing lists: 134 subscribers  Ready for production environments

33 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 33 - 23/02/2004 Ongoing work  Scalable group communication middleware for clusters –Needed for horizontal scalability –Decouple application streams from network channels  Monitoring –Continuous monitoring stored in repositories –Generic monitoring console for both online monitoring and monitoring history browsing  Administration –Fully featured administration console –Graphical configuration and deployment of centralized/distributed backeds and controllers (offline/online) –Dynamic reconfiguration  Misc. –Automated Load testing –RPM packaging (JPackage)

34 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 34 - 23/02/2004 Questions & Answers _________ Thanks to all users and contributors... http://c-jdbc.objectweb.org

35 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 35 - 23/02/2004 Virtual Database  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

36 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 36 - 23/02/2004 TPC-W Performance (Amazon.com)

37 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 37 - 23/02/2004 Outline  Overview  Fault tolerance  Performance  New features  Roadmap

38 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 38 - 23/02/2004 Building the initial state  Octopus is an ETL tool  Use Octopus to store a dump of the initial database state

39 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 39 - 23/02/2004 Journaling  Backend is enabled  All database updates are logged (SQL statement, user, transaction, …)

40 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 40 - 23/02/2004 Adding backend on the fly  Add new backends while system online  Restore dump corresponding to initial checkpoint with Octopus

41 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 41 - 23/02/2004 Synchronizing backends  Replay updates from the log

42 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 42 - 23/02/2004 Expanded Cluster  Enable backends when done

43 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 43 - 23/02/2004 Handling a backend failure  A node fails!  Automatically disabled but should be fixed or changed by administrator

44 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 44 - 23/02/2004 Restoring a backend  Restore latest dump with Octopus

45 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 45 - 23/02/2004 Re-synchronization  Replay missing updates from log

46 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 46 - 23/02/2004 Healed Cluster  Re-enable backend when done

47 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 47 - 23/02/2004 Prototype  C-JDBC Management Framework  Shared design

48 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 48 - 23/02/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

49 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 49 - 23/02/2004 Making new checkpoints  Replay missing updates from log

50 JOnAS developer workshop – http://www.objectweb.org - c-jdbc@objectweb.org 50 - 23/02/2004 Making new checkpoints  Re-enable backend when done


Download ppt "JOnAS developer workshop – - 1 - 23/02/2004 status Emmanuel Cecchet"

Similar presentations


Ads by Google