1 / 54

Oracle 9 i AS Availability and Scalability Margaret H. Mei Senior Product Manager, ST

Oracle 9 i AS Availability and Scalability Margaret H. Mei Senior Product Manager, ST. Agenda. Brief 9iAS Overview Designing and Deploying Applications Scalability Availability. Database Cache. Extract Business Intelligence. Clickstream Intelligence. Reports Services. Discoverer.

sasha
Télécharger la présentation

Oracle 9 i AS Availability and Scalability Margaret H. Mei Senior Product Manager, ST

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Oracle 9i ASAvailability and Scalability Margaret H. Mei Senior Product Manager, ST 1

  2. Agenda • Brief 9iAS Overview • Designing and Deploying Applications • Scalability • Availability 2

  3. Database Cache Extract Business Intelligence Clickstream Intelligence Reports Services Discoverer Oracle9i Application Server Create Personalized Portals Portal Run All Your Web Sites & Applications Connected Clients CORBA Perl XML/XSL J2EE Oracle Forms Services Java Stored Procedures PSPs PLSQL BC4J Web Cache Developer Kits LDAP, XML, Database Oracle HTTP Server powered by Apache non-Oracle Data Sources Oracle9iAS Wireless for wireless clients Collaborate With Stakeholders Email, Unified Messaging Internet File System non-Oracle Apps Integrate Your Business Oracle Applications Interconnect Oracle Workflow Oracle Gateways Manage Your Web Infrastructure Oracle Enteprise Manager Oracle Internet Directory 3 Oracle Advanced Security

  4. Agenda • Brief 9iAS Overview • Designing and Deploying Applications • Scalability • Availability 4

  5. Layered Scaling • Scale each tier independent of the other tiers • Middle-tier: Scale its two major components • Front-end: The web server and different plug-ins that serve static files and route requests to the back-end servers • Back-end: Execute application logic written in Java (JSPs, Servlets), PL/SQL (PSPs, Stored Procedures) etc. • Data-tier: Scale the data-tier 5

  6. Scaling Front-end • Front-end Apache Web server: Serves static resources and acts as a dispatcher for dynamic requests • The Apache server is stateless (static, mod_plsql...) • Scale on SMP - Apache process based architecture • Scale on Web Farm: Run multiple instances on a web farm (exact clones) and use a load balancing solution • Software load balancers: Oracle 9i AS Web Cache, Network Dispatcher, NLBS etc. • Round-Robin DNS (RRDNS) • Intelligent IP or Application aware load balancing hardware like LocalDirector, BigIP, ACEDirector etc. • Combination of one or more of the above 6

  7. Deploying Front-end • Front-End Web Server Scalability Front-end Web servers Back-end servers Load Balancer Oracle Web Cache PL/SQL PL/SQL Database Internet PL/SQL PL/SQL Shared disk 7

  8. Deploying Front-end • Multiple load balancers using RRDNS Front-end Web servers Back-end servers Load Balancer 1 Database Internet Load Balancer 2 8

  9. Back-end Server : Application Design • Stateless vs. stateful applications • A stateful application maintains session state information within its runtime environment between successive client calls. • A stateless application maintains no such information within its environment. It may persist state information in a common store such as a database or in the client browser. 9

  10. Stateful Application Example • Step-by-step example of client requests to a stateful application Node A Load Balancer Client Database Node B 10

  11. Stateful Application Example • Step-by-step example of client requests to a stateful application Client issues request; request gets routed for service by Node A. Node A may access db to service the request Node A Load Balancer Client Database Node B 11

  12. Stateful Application Example • Step-by-step example of client requests to a stateful application Node A services request; maintains session state for Client’s session Node A Load Balancer Client Database Node B Client’s session state 12

  13. Stateful Application Example • Step-by-step example of client requests to a stateful application On any subsequent request, Client must be serviced by Node A (and not Node B) to access Client’s session state Node A Load Balancer Client Database Node B Client’s session state 13

  14. Stateless Application Example • Step-by-step example of client requests to a stateless application Node A Load Balancer Client Database Node B 14

  15. Stateless Application Example • Step-by-step example of client requests to a stateless application Client issues request; request gets routed for service by Node A Node A Load Balancer Client Database Node B 15

  16. Stateless Application Example • Step-by-step example of client requests to a stateless application Node A services request; maintains session state in Database Node A Load Balancer Client Database Node B Client’s session state 16

  17. Stateless Application Example • Step-by-step example of client requests to a stateless application On any subsequent request, Client may be serviced by either Node A or Node B and access session state Node A Load Balancer Client Database Node B Client’s session state 17

  18. Deploying Back-end: Stateless • Write stateless applications that run on a cluster • Front-end server(s) load balances across the back-end servers Front-end servers Back-end servers JServ Load Balancer JServ Database Internet JServ JServ 18

  19. Apache JServ Apache JServ Client HTTP Server Apache JServ Load-balancing Back-end Apache JServ on a cluster • Example: Load-balancing between multiple nodes with Apache JServ. The HTTP Server will load-balance requests to Apache JServ instances. Bigger machines may be allocated more requests Apache JServ Load Balancer Apache JServ 19

  20. Deploying Back-end Server: Stateful • Stateful Applications: Use sticky routing • Use Oracle 8i JVM Front-end servers Back-end servers 8i JVM PL/SQL Load Balancer 8i JVM PL/SQL Database Internet 8i JVM PL/SQL 8i JVM PL/SQL 20

  21. Load-balancing HTTP Server + Oracle8i JVM The Oracle8i JVM can load-balance over multiple listener processes Client Network Load Balancer Oracle8i Listeners Oracle8i Dispatchers Oracle8i Shared Servers HTTP Servers Ports Processes 21

  22. Load-balancing HTTP Server + Oracle8i JVM A listener will be chosen at random Client Network Load Balancer Oracle8i Listeners Oracle8i Dispatchers Oracle8i Shared Servers HTTP Servers Ports Processes 22

  23. Load-balancing HTTP Server + Oracle8i JVM The listener will determine which Oracle8i JVM node has the lightest load, and then which dispatcher on that node is most available Client Network Load Balancer Oracle8i Listeners Oracle8i Dispatchers Oracle8i Shared Servers HTTP Servers Ports Processes 23

  24. Load-balancing HTTP Server + Oracle8i JVM The dispatcher will then route the request to one of the server processes Client Network Load Balancer Oracle8i Listeners Oracle8i Dispatchers Oracle8i Shared Servers HTTP Servers Ports Processes 24

  25. Client Client HTTP Server Apache JServ on JDK JVM Client Client Scaling Stateless Applications JDK JVM • The JDK JVM scales by giving quick performance to many clients. This works well for stateless Java apps because the VM does not get weighted down by holding onto a lot of state. No state Additional clients do not contribute additional state to be managed between successive requests 25

  26. Client Client HTTP Server Apache JServ on JDK JVM Client Client Application Design: Scalability JDK JVM • However, stateful applications force the VM to perform a lot of concurrent memory management when multiple users access the system. Managing state may inhibit the scalability of the JDK JVM. Managing this memory may slow down the performance of the JDK JVM 26

  27. Client Client HTTP Server Client Client Application Design: Scalability Oracle8i JVM • The Oracle8i JVM is a session-based JVM that handles stateful applications exceedingly well. Performance does not degrade until the capacity of the hardware is reached. Oracle8i JVM No concurrent GC because of segregated memory spaces 27

  28. Scaling Back-end Server • Oracle 9i AS provides scalability for both stateless and stateful applications • Stateless Java applications scale well in the JDK JVM • Stateful Java applications scale well in the Oracle8i JVM (aka JServer) • Oracle 9i AS also provides a highly scalable infrastructure for: Oracle Forms, Oracle Reports, PL/SQL and Perl applications 28

  29. Scaling Data Server: Oracle 9i AS • Middle-tier database cache • Reduces load on back-end database • Faster access by avoiding network round trips • Works transparently with existing applications • Does not slow updates etc.. 29

  30. Scaling Data Server: Oracle 9i AS • Example: Web site with catalog Without Cache: Static content served from middle tier. All catalog queries are resolved on back end. Catalog data Static content HTTP Server Data reads Data writes With Cache: Queries resolved at cache, reducing load on back end. Cache data on many middle tier nodes for higher Scalability. Catalog data Static content HTTP Server Oracle8i Cache Data reads Data writes 30

  31. ScalingData Server: DatabaseCache Partitioned Data-tier Front-end servers Back-end servers jserv iCache Load Balancer OPS Database jserv iCache Internet jserv iCache OPS Database jserv iCache 31

  32. Scalability: Putting it all together • Stateless Partitioned Data-tier Front-end servers Back-end servers Apache jserv iCache Load Balancer OPS Database Apache jserv iCache Internet Apache jserv iCache OPS Database Apache jserv iCache 32

  33. Scalability: Putting it all together • Stateful Partitioned Data-tier Front-end servers Back-end servers Apache Load Balancer OPS Database iCache OJVM Apache iCache OJVM Internet iCache OJVM Apache OPS Database iCache OJVM Apache 33

  34. Oracle 9i AS Services for Scalability • Oracle 9i AS enables scalable stateless and stateful applications, front-end servers, back-end servers and data servers Oracle 9i AS makes it easy to build scalable web applications 34

  35. Agenda • Goals for PAS • Designing and Deploying Applications • Scalability • Availability 35

  36. AvailabilityDeath-detection and restart • Oracle 9i AS will detect the failure of given threads or processes and restart them as appropriate. • Watchdog in HTTP Server • PMON in Oracle8i JVM, Oracle8i PL/SQL, and Oracle8i Cache • HTTP Server will detect death of Apache JServ instance and not route requests to it. Restart of remote Apache JServ in a future release. 36

  37. Availability Redundancy & Failover • For web server failure, Oracle 9i AS web cache can reroute requests to other web server instances. • For failure of stateless services,Oracle 9i AS will failover a request to an alternate instance of the service. This is similar to connection re-routing. 37

  38. Apache JServ Oracle8i Cache Client Oracle8i Apache JServ Oracle8i Cache Oracle8i Apache JServ Oracle8i Cache Oracle 9i AS: High Availability • Oracle 9i AS can be deployed to create a system with no single point of failure No single point of failure in database tier with OPS HTTP Server Network load-balancer HTTP Server HTTP Server Network load-balancer HTTP Server 38

  39. Client Client HTTP Server Apache JServ on JDK JVM Client Client Oracle 9i AS: Session Isolation • There is no session isolation in a typical JDK JVM. The failure of one user’s session may cause all users’ sessions to fail. BUG One client may encounter a buggy session 39

  40. Client Client HTTP Server Apache JServ on JDK JVM Client Client Oracle 9i AS: Session Isolation • There is no session isolation in a typical JDK JVM. The failure of one user’s session may cause all users’ sessions to fail. The one bug could bring down all users’ sessions 40

  41. Client Client HTTP Server Client Client Oracle 9i AS: Session Isolation • JServer isolates sessions from one another. In the case that one fails, the others are unaffected. BUG Oracle8i JVM One client may encounter a buggy session 41

  42. Client Client HTTP Server Client Client Oracle 9i AS: Session Isolation • JServer isolates sessions from one another. In the case that one fails, the others are unaffected. Oracle8i JVM Only the buggy session is lost. Other sessions are unaffected 42

  43. Oracle 9iAS: Connection Re-routing • In the case of failure of a stateless service of Oracle 9i AS, requests can be re-routed to alternate instances of the service. • If a client is accessing a stateful application, the client may be re-routed to the instance of the application through an alternate route • Let’s look at an example with the HTTP Server and a stateful application running in Oracle8i JVM... 43

  44. Oracle8i JVM HTTP Server on Node A Client Oracle8i JVM HTTP Server on Node B Oracle8i JVM Oracle 9i AS: Connection Re-routing • Example: Failure of an HTTP Server node. Subsequent requests can be re-routed through alternate nodes. Network load-balancer 44

  45. Oracle8i JVM HTTP Server on Node A Client Oracle8i JVM HTTP Server on Node B Oracle8i JVM Oracle 9i AS: Connection Re-routing • Example: Failure of an HTTP Server node. Subsequent requests can be re-routed through alternate nodes. A client request comes in and is routed to an HTTP Server instance and an Oracle8i JVM instance Network load-balancer 45

  46. Oracle8i JVM HTTP Server on Node A Client Oracle8i JVM HTTP Server on Node B Oracle8i JVM Oracle 9i AS: Connection Re-routing • Example: Failure of an HTTP Server node. Subsequent requests can be re-routed through alternate nodes. The application in Oracle8i JVM is stateful, and session state is retained in the instance. Also, a cookie may be returned to the client’s browser Network load-balancer 46

  47. Oracle8i JVM HTTP Server on Node A Client Oracle8i JVM HTTP Server on Node B Oracle8i JVM Oracle 9i AS: Connection Re-routing • Example: Failure of an HTTP Server node. Subsequent requests can be re-routed through alternate nodes. Now, in between requests, the HTTP Server on Node A goes down Network load-balancer 47

  48. Oracle8i JVM HTTP Server on Node A Client Oracle8i JVM HTTP Server on Node B Oracle8i JVM Oracle 9i AS: Connection Re-routing • Example: Failure of an HTTP Server node. Subsequent requests can be re-routed through alternate nodes. The next request can be routed to the destination Oracle8i JVM instance through an alternate HTTP Server Network load-balancer 48

  49. Oracle8i JVM HTTP Server on Node A Client Oracle8i JVM HTTP Server on Node B Oracle8i JVM Oracle 9i AS: Connection Re-routing • Example: Failure of an HTTP Server node. Subsequent requests can be re-routed through alternate nodes. If it were just an HTTP Server process that went down, Oracle 9i AS would detect this and restart it Network load-balancer 49

  50. Client HTTP Server OJVM Oracle 9i AS: Failover • Oracle8i Cache features transparent application failover (TAF). In the case that a cache node goes down, client sessions will be automatically recreated on an alternate instance. A client has a stateful session with a cache instance Oracle8i Cache Oracle8i Cache 50

More Related