1 oracle 9i as availability and scalability margaret h. mei senior product manager, st

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

Upload: joseph-chapman

Post on 26-Dec-2015

217 views

Category:

Documents


1 download

TRANSCRIPT

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

1

Oracle 9i ASAvailability and Scalability

Margaret H. Mei

Senior Product Manager, ST

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

2

Agenda

• Brief 9iAS Overview

• Designing and Deploying Applications– Scalability – Availability

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

3

Oracle9i Application Server

non-OracleData

Sources

Oracle9iAS Wireless

for wireless clients

Dat

abas

e C

ach

e

Connected Clients

Oracle Enteprise Manager Oracle Advanced Security

Manage Your Web Infrastructure

Web

Cac

he

Ora

cle

HT

TP

Se

rve

r po

wer

ed b

y A

pach

e

non-OracleApps

Oracle Internet Directory

Create Personalized Portals

Run All Your Web Sites & Applications

Developer KitsLDAP, XML, Database

Email, Unified Messaging

Collaborate With Stakeholders

DiscovererReports Services

Extract Business IntelligenceClickstreamIntelligence

Integrate Your Business

Java StoredProcedures

PSPsPLSQL

FormsServices

BC4J

XML/XSLJ2EE CORBA PerlOracle

Oracle Applications Interconnect

Oracle WorkflowOracle Gateways

Portal

Internet File System

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

4

Agenda

• Brief 9iAS Overview

• Designing and Deploying Applications– Scalability – Availability

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

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

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

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

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

7

Deploying Front-end

• Front-End Web Server Scalability

Front-end Web servers

Load BalancerOracle Web Cache

Back-end servers

InternetDatabase

Shared disk

PL/SQL

PL/SQL

PL/SQL

PL/SQL

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

8

Deploying Front-end

• Multiple load balancers using RRDNS

Front-end Web servers

Load Balancer 1

Back-end servers

InternetDatabase

Load Balancer 2

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

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.

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

10

Stateful Application Example

Node A Node A

DatabaseDatabase

Node B Node B

ClientClientLoad Load

BalancerBalancer

• Step-by-step example of client requests to a stateful application

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

11

Stateful Application Example

Node A Node A

DatabaseDatabase

Node B Node B

ClientClientLoad Load

BalancerBalancer

Client issues request; request gets routed for service by Node A. Node A may access db to service the request

• Step-by-step example of client requests to a stateful application

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

12

Stateful Application Example

Node ANode A

DatabaseDatabase

Client’s session stateClient’s session state Node BNode B

ClientClientLoad Load

BalancerBalancer

Node A services request; maintains session state for Client’s session

• Step-by-step example of client requests to a stateful application

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

13

Client’s session stateClient’s session state

Stateful Application Example

Node A Node A

DatabaseDatabase

Node B Node B

ClientClientLoad Load

BalancerBalancer

On any subsequent request, Client must be serviced by Node A (and not Node B) to access Client’s session

state

• Step-by-step example of client requests to a stateful application

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

14

Stateless Application Example

Node A Node A

DatabaseDatabase

Node B Node B

ClientClientLoad Load

BalancerBalancer

• Step-by-step example of client requests to a stateless application

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

15

Stateless Application Example

Node A Node A

DatabaseDatabase

Node B Node B

ClientClientLoad Load

BalancerBalancer

Client issues request; request gets routed for service by Node A

• Step-by-step example of client requests to a stateless application

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

16

Stateless Application Example

Node A Node A

DatabaseDatabase

Client’s session stateClient’s session state Node B Node B

ClientClientLoad Load

BalancerBalancer

Node A services request; maintains session state in Database

• Step-by-step example of client requests to a stateless application

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

17

Client’s session stateClient’s session state

Stateless Application Example

Node A Node A

DatabaseDatabase

Node B Node B

ClientClientLoad Load

BalancerBalancer

On any subsequent request, Client may be serviced by either Node A or Node B

and access session state

• Step-by-step example of client requests to a stateless application

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

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

Load Balancer

Back-end servers

InternetDatabase

JServ

JServ

JServ

JServ

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

19

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

HTTP HTTP ServerServer

Apache Apache JServJServ

Apache Apache JServJServ

Apache Apache JServJServ

Apache Apache JServJServ

ClientClient

Apache Apache JServJServ

Load Load BalancerBalancer

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

20

Deploying Back-end Server: Stateful

• Stateful Applications: Use sticky routing

• Use Oracle 8i JVMFront-end servers

Load Balancer

Back-end servers

InternetDatabase

8i JVMPL/SQL

8i JVMPL/SQL

8i JVMPL/SQL

8i JVMPL/SQL

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

21

Load-balancing HTTP Server + Oracle8i JVM

Client Network Load

Balancer

HTTP Servers Oracle8i Listeners

Oracle8i Dispatchers

Oracle8i Shared ServersPorts Processes

The Oracle8i JVM can load-balance over multiple listener processes

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

22

Load-balancing HTTP Server + Oracle8i JVM

Client Network Load

Balancer

HTTP Servers Oracle8i Listeners

Oracle8i Dispatchers

Oracle8i Shared ServersPorts Processes

A listener will be chosen at random

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

23

Load-balancing HTTP Server + Oracle8i JVM

Client Network Load

Balancer

HTTP Servers Oracle8i Listeners

Oracle8i Dispatchers

Oracle8i Shared ServersPorts Processes

The listener will determine which Oracle8i JVM node has the lightest load, and then which dispatcher on that node is most available

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

24

Load-balancing HTTP Server + Oracle8i JVM

Client Network Load

Balancer

HTTP Servers Oracle8i Listeners

Oracle8i Dispatchers

Oracle8i Shared ServersPorts Processes

The dispatcher will then route the request to one of the server processes

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

25

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.

ClientClient

Apache JServ Apache JServ

on JDK JVM on JDK JVM

HTTPHTTP

Server Server

ClientClient

ClientClient

ClientClient

Nostate

Additional clients do not contributeadditional state to be managed between

successive requests

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

26

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.

ClientClient

Apache JServ Apache JServ

on JDK JVM on JDK JVM

HTTPHTTP

Server Server

ClientClient

ClientClient

ClientClient

Managing this memory may slow down the performance of the JDK JVM

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

27

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.

ClientClient

Oracle8Oracle8i i JVM JVM

HTTPHTTP

Server Server

ClientClient

ClientClient

ClientClientNo concurrent GC because of segregated memory spaces

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

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

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

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

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

30

Scaling Data Server: Oracle 9i AS

• Example: Web site with catalogWithout Cache:

Static content Static content served from middle served from middle tier. All catalog tier. All catalog queries are resolved queries are resolved on back end.on back end.

With Cache:

Queries resolved at Queries resolved at cache, reducing load cache, reducing load on back end. Cache on back end. Cache data on many middle data on many middle tier nodes for higher tier nodes for higher Scalability.Scalability.

Static

content

Data readsData writes

HTTP Server

Data writesData reads

Static

content

Catalog Catalog datadata

HTTP Server Oracle8i Cache

Catalog Catalog datadata

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

31

Scaling Data Server: Database Cache

Front-end servers

Load Balancer

Back-end servers

Internet

OPSDatabase

iCache

iCache

iCache

iCache

jserv

jserv

jserv

jserv

OPSDatabase

Partitioned Data-tier

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

32

Scalability: Putting it all together

• Stateless

Front-end servers

Load Balancer

Back-end servers

Internet

OPSDatabase

iCache

iCache

iCache

iCache

jserv

jserv

jserv

jserv

OPSDatabase

Partitioned Data-tier

Apache

Apache

Apache

Apache

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

33

Scalability: Putting it all together

• Stateful

Front-end servers

Load Balancer

Back-end servers

Internet

OPSDatabase

iCache

iCache

iCache

iCache

OJVM

OPSDatabase

Partitioned Data-tier

Apache

Apache

Apache

Apache

OJVM

OJVM

OJVM

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

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

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

35

Agenda

• Goals for PAS

• Designing and Deploying Applications– Scalability – Availability

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

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.

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

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.

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

38

Oracle 9i AS: High Availability

• Oracle 9i AS can be deployed to create a system with no single point of failure

HTTP Server

Client

Network load-

balancer

HTTP Server

HTTP Server

Apache JServ

Apache JServ

Apache JServ

Oracle8i

Oracle8i Cache

Oracle8i Cache

Oracle8i Cache

HTTP Server

Oracle8i

No single point of failure in database

tier with OPS

Network load-

balancer

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

39

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.

ClientClient

Apache JServ Apache JServ

on JDK JVM on JDK JVM

HTTPHTTP

Server Server

ClientClient

ClientClient

ClientClient

One client may encounter a buggy sessionOne client may encounter a buggy session

BUGBUG

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

40

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.

ClientClient

Apache JServ Apache JServ

on JDK JVM on JDK JVM

HTTPHTTP

Server Server

ClientClient

ClientClient

ClientClient

The one bug could bring down all users’ sessionsThe one bug could bring down all users’ sessions

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

41

Oracle 9i AS: Session Isolation

• JServer isolates sessions from one another. In the case that one fails, the others are unaffected.

ClientClient

Oracle8Oracle8i i JVM JVM

HTTPHTTP

Server Server

ClientClient

ClientClient

ClientClientOne client may encounter a One client may encounter a

buggy sessionbuggy session

BUGBUG

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

42

Oracle 9i AS: Session Isolation

• JServer isolates sessions from one another. In the case that one fails, the others are unaffected.

ClientClient

Oracle8Oracle8i i JVM JVM

HTTPHTTP

Server Server

ClientClient

ClientClient

ClientClientOnly the buggy session is lost. Only the buggy session is lost. Other sessions are unaffectedOther sessions are unaffected

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

43

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

Oracle 9i AS: Connection Re-routing

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

44

Oracle 9i AS: Connection Re-routing

• Example: Failure of an HTTP Server node. Subsequent requests can be re-routed through alternate nodes.

HTTP ServerHTTP Server

on Node Aon Node A

ClientClient Network Network load-load-

balancerbalancerHTTP ServerHTTP Server

on Node Bon Node B

Oracle8Oracle8i i JVMJVM

Oracle8Oracle8ii JVM JVM

Oracle8Oracle8i i JVMJVM

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

45

Oracle 9i AS: Connection Re-routing

• Example: Failure of an HTTP Server node. Subsequent requests can be re-routed through alternate nodes.

HTTP ServerHTTP Server

on Node Aon Node A

ClientClient Network Network load-load-

balancerbalancerHTTP ServerHTTP Server

on Node Bon Node B

Oracle8Oracle8i i JVMJVM

Oracle8Oracle8i i JVMJVM

Oracle8Oracle8ii JVM JVM

A client request comes in and is routed to an HTTP Server instance and an Oracle8i JVM instance

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

46

Oracle 9i AS: Connection Re-routing

HTTP ServerHTTP Server

on Node Aon Node A

ClientClient Network Network load-load-

balancerbalancerHTTP ServerHTTP Server

on Node Bon Node B

Oracle8Oracle8ii JVM JVM

Oracle8Oracle8i i JVMJVM

Oracle8Oracle8i i JVMJVM

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

• Example: Failure of an HTTP Server node. Subsequent requests can be re-routed through alternate nodes.

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

47

Oracle 9i AS: Connection Re-routing

• Example: Failure of an HTTP Server node. Subsequent requests can be re-routed through alternate nodes.

HTTP ServerHTTP Server

on Node Aon Node A

ClientClient Network Network load-load-

balancerbalancerHTTP ServerHTTP Server

on Node Bon Node B

Oracle8Oracle8i i JVMJVM

Oracle8Oracle8i i JVMJVM

Oracle8Oracle8i i JVMJVM

Now, in between requests, the HTTP Server on Node A goes down

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

48

Oracle 9i AS: Connection Re-routing

HTTP ServerHTTP Server

on Node Aon Node A

ClientClient Network Network load-load-

balancerbalancerHTTP ServerHTTP Server

on Node Bon Node B

Oracle8Oracle8ii JVM JVM

Oracle8Oracle8i i JVMJVM

Oracle8Oracle8i i JVMJVM

The next request can be routed to the destination Oracle8i JVM instance through an alternate HTTP Server

• Example: Failure of an HTTP Server node. Subsequent requests can be re-routed through alternate nodes.

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

49

Oracle 9i AS: Connection Re-routing

HTTP ServerHTTP Server

on Node Aon Node A

ClientClient Network Network load-load-

balancerbalancerHTTP ServerHTTP Server

on Node Bon Node B

Oracle8Oracle8ii JVM JVM

Oracle8Oracle8ii JVM JVM

Oracle8Oracle8ii JVM JVM

If it were just an HTTP Server process that went down, Oracle 9i AS would detect this and restart it

• Example: Failure of an HTTP Server node. Subsequent requests can be re-routed through alternate nodes.

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

50

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.

Client HTTP Server

OJVM

Oracle8i Cache

Oracle8i Cache

A client has a stateful session with a cache instance

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

51

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.

Client HTTP Server

OJVM

Oracle8i Cache

Oracle8i Cache

The cache instance may go down

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

52

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.

Client HTTP Server

OJVM

Oracle8i Cache

Oracle8i Cache

The session automatically re-connects to the new instance. The cache session is

transparently recreated on the alternate instance

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

53

Availability

• Minimize planned downtime

• No Single Point of Failure

• Session Isolation

• Automatic Death Detection And Restart

• Redundancy and Automatic Failover

Oracle 9i AS makes it easy to build highly available web applications

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