A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory...
-
Upload
gwen-foster -
Category
Documents
-
view
220 -
download
0
Transcript of A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory...
![Page 1: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/1.jpg)
A Presentation to Oracle OpenWorld
Blistering Web Applications with Oracle TimesTen In Memory Option
![Page 2: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/2.jpg)
2
Intro & Welcome
Bill Binko, Perot Systems Consulting (Tampa)Perot Consulting Performance Practice
–Tuning & Optimizing Enterprise Applications–Custom Development of High-Volume
ApplicationsContact: [email protected]
![Page 3: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/3.jpg)
3
Overview
Very High Volume Web Applications– Delivery & Data Collection
Leverage TimesTen (IMDB) and Cache Connect Based on several engagements (past & present)
– Online Content Delivery, Smart Grid, Smart CDN Management Fundamental:
– Find high-volume functionality (usually not hard)– Re-implement using TimesTen IMDB & Simpler Architecture
Results:– Highly scalable (horizontally)– Deliveries (finding constrained Content): 1,000 req/sec/node– Data Collection (simple recording & aggregation) : 75,000 req/sec/node
![Page 4: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/4.jpg)
4
Java EE Tutorial #1 – What’s wrong with this picture?
Web Container
JSP Servlet
JST
LJava S
erver Faces
StA
XJava P
ersistenceJT
AC
onnectorsJM
SM
anagement
WS
MetaD
ataW
eb Services
JAC
CJA
XR
JAX
-WS
JAX
-RP
C
SAAJ
Java Mail
JAF
J2SE
Database
![Page 5: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/5.jpg)
5
Java EE Tutorial #2
Web Container
JSP Servlet
JST
L
Java Server F
aces
StA
X
Java Persistence
JTA
Connectors
JMS
Managem
ent
WS
MetaD
ata
Web S
ervices
JAC
C
JAX
R
JAX
-WS
JAX
-RP
C
SAAJ
Java Mail
JAF
J2SE
Database
EJB Container
EJB
StA
X
Java Persistence
JTA
Connectors
JMS
Managem
ent
WS
MetaD
ata
Web S
ervices
JAC
C
JAX
R
JAX
-WS
JAX
-RP
C
SAAJ
J2SE
Java Mail
JAF
![Page 6: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/6.jpg)
6
A More Reasonable App Structure
Application Server
Presentation
Application Logic
App S
rv. Services
Business Logic
Data Access
![Page 7: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/7.jpg)
7
Traditional Application Stack
Flavor somewhat irrelevant– Java EE, .NET, LAMP, even Rails
Most still have relational DB as foundation Many Framework Options (Even just for Java!)
– Presentation: Struts, JSF, JSP+Tag Libs– App Logic: Struts, Spring, Seam, etc.– Business Logic: Internal & External
External: EJB, SOA, ESB, etc.– Data Access: Java Persistence, ORMs, JDBC, DAO
Works well for “General” Applications– Many Benefits (Technical & Business)– Many Problems (Debugging, Performance, Don’t get me started)
Important: Every Layer Adds Overhead!
Application Server
Presentation
Application Logic
App S
rv. Services
Business Logic
Data Access
![Page 8: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/8.jpg)
8
What is a “General” Application?
“Normal” Distribution of Effort/Results
Follows “Pareto” 80/20 Rules– Bugs, Traffic, Load, Time, etc.
Consistent “Type” of activities– CRUD Applications– Similar Actions
No major Outliers– Resource Consumption
“What Manager Expect”– (Not as common as we’d like)
“Trivial Many”
“Vital Few”
Effort Result
80%
20%
20%
80%
![Page 9: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/9.jpg)
9
High-Volume Applications
Fundamental Split in Functionality– Configuration/Analysis (Low Volume)
– Delivery/Collection (High Volume)
No longer 80/20! More like 100/1 (or 1000/1!) Two Main Categories
– Content Delivery– Data Collection– Combination
Normal Architecture– L.V. Benefits– H.V. Fails (Spectacularly)
“Trivial Many”
“Vital Few”
Features(URLs, Methods, etc)
Resources(Time, Traffic, Hits)
>99%
>99% Delivery/
Measurement
ConfigurationAnalysis
![Page 10: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/10.jpg)
10
Category 1: High-Volume Delivery Applications
Delivery vs. Web App vs. Hosting? – Many rapid requests from separate clients– Mostly Stateless/Sessionless– Dynamic Content: not just hosting files/images
Examples– Online Ads– Personalized Feeds (RSS/Atom/etc.)– APIs (esp. REST)
Pseudo-Delivery– Ajax (Auto-Complete, Status Check)– Smart CDN Management
![Page 11: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/11.jpg)
11
High-Volume Delivery Application Solution
The Trick is to Split the App– Low Volume: Configuration– High Volume: Delivery
Session, Workflow, Human Interfaces are SLOWHandle Delivery SeparatelyTimesTen (Oracle IMDB) Helps Tremendously
![Page 12: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/12.jpg)
12
Delivery Solution - Remember the RDBMS!
Relational Database – Oracle RAC
Application Server
Presentation
Application Logic
App S
rv. Services
Business Logic
Data Access
Table
Table
Table
Table
Table
Table
Table
Table Table
Table
ODBC/JDBC/OCI
![Page 13: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/13.jpg)
13
Delivery Solution - One option: just split the app
Relational Database – Oracle RAC
Low Volume Server
Presentation
Application Logic
App S
rv. Services
Business Logic
Data Access
Table
Table
Table
Table
Table
Table
Table
Table Table
Table
ODBC/JDBC/OCI
Required For Delivery
High Volume Server(Delivery Node)
Request Management
Direct Data Access
ODBC/JDBC/OCI
![Page 14: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/14.jpg)
14
Delivery Solution – Add TimesTen (IMDB Option)
Relational Database – Oracle RAC
Low Volume Server
Presentation
Application Logic
App S
rv. Services
Business Logic
Data Access
Table
Table
Table
Table
Table
Table
Table
Table Table
Table
ODBC/JDBC/OCI
Required For Delivery
High Volume Server
Request Management
Direct Data Access
TimesTen IMDB
Table
Table
Table
Table Table
Read Only Cache Groups
Cache Connect
Shared Memory O/JDBC
![Page 15: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/15.jpg)
15
TimesTen Overview
JDB
C
Driv
erO
DB
C
Driv
er
Sha
red
Mem
ory
TimesTen – In-Memory RDBMS
Cache Group
Table
Table
Table
Table
Table
Table
Table
Table Table
Table
Oracle RAC
Cache Connect
Disk
Log
Shi
p
Exp
oses
![Page 16: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/16.jpg)
16
High Volume Delivery Server Design
High Volume Delivery Node
TimesTen/IMDB
Ap
ache
Web
Se
rver
AJP
Java EE App Server
Custom Apache C ModuleS
erv
let
JDB
C
Tim
esT
en
Driv
er
Sh
ared
Me
mo
ry
Ca
che
Gro
ups
Ca
che
Co
nnec
t
RAC
Del
iver
y R
equi
red
Dat
a
HTTPAJP Direct
Direct
Low Volume Server
Pre
sen
tatio
n
Ap
plic
atio
n L
og
ic
App Srv. Services
Bu
sin
ess
Lo
gic
Da
ta A
cce
ssHTTP JDBC
![Page 17: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/17.jpg)
17
Nothing Magic about WebLogic / Java
High Volume Delivery Node
TimesTen/IMDB
Apa
che
Web
Ser
ver
PH
P M
odul
e
PHP Environment
Custom Apache C ModuleP
age
Logi
c
MD
B2
OD
BC
Driv
er
Sha
red
Mem
ory
Cac
he G
roup
s
Cac
he C
onne
ct
RAC
De
live
ry R
eq
uire
d D
ata
HTTPAJP Direct
Direct
Low Volume Server
Pre
sent
atio
n
App
licat
ion
Log
ic
App Srv. Services
Bus
ines
s L
ogic
Dat
a A
cces
s
HTTP JDBC
![Page 18: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/18.jpg)
18
Scales Well Horizontally
Edg
e S
erve
r(A
pach
e/F
5/IB
M)
HT
TP
HV Delivery Node
Oracle RAC
HV Delivery Node
Low Volume Server
Ora
cle/
OC
I
HV Delivery Node
HV Delivery Node
HV Delivery Node
TimesTen/IMDB
Apa
che
Web
Ser
ver
AJP
Java EE App Server
Custom Apache C Module
Ser
vlet
JDB
C
Tim
esT
enD
river
Sha
red
Mem
ory
Cac
he G
roup
s
Cac
he C
onne
ctAJP Direct
Direct
Low Volume Server
Pre
sen
tatio
n
Ap
plic
atio
n L
og
ic
App Srv. Services
Bu
sin
ess
Lo
gic
Da
ta A
cce
ss
![Page 19: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/19.jpg)
19
Category 2: Data Collection And Analysis
Not about Intelligent Delivery About Rapid Data Collection Simple “Requests” are just data submission Attributes:
– High Volume– Low Latency– Many Concurrent Clients
Examples– Analytics (JavaScript/Ajax/Beacon Images)– Sensor Data– (Content) Delivery Tracking
![Page 20: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/20.jpg)
20
High-Volume Data Collection Solution
The Trick is STILL to Split the App– Low Volume: Analysis– High Volume: Data Collection
Analysis uses normal BI/DW techniques– Don’t change this
Data Collection is critical Pre-Aggregate on the High-Volume Server
– Data is still data, and you CAN’T keep it all– (unless you’re Google/Amazon/etc.)
![Page 21: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/21.jpg)
21
Data Collection & Analysis
Dimensional DW or Relational for ETL later
LV Analysis Server
Presentation
Application Logic
Ap
p Srv. S
ervices
Business Logic
Data Access
Table
Table
Table
FactTable
Table
Table
Table
Table Table
Table
ODBC/JDBC/OCI
Required For Delivery
HV Data Collection Server
Request Management
Direct Data Access
TimesTen IMDB
Table
Table
Table
Table Table
AWT/SWT Group
Shared Memory O/JDBC
AggregatedData
Table
Table
Local TT Tables
Aggregator
Aggregates
![Page 22: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/22.jpg)
22
Data Collector HV Design
High Volume Data Collection Node
TimesTen/IMDB
Apa
che
Web
Ser
ver
Background Process
Custom Apache C Module
Sha
red
Mem
ory
Cac
he G
roup
s
Cac
he C
onne
ct
RAC
Agg
rega
ted
Dat
a
HTTPDirect
Direct
Very Little Logic
Primarily Image/Code Responses
Just Record & Respond
Background Aggregator Moves to SWT
Cac
he M
odul
es
![Page 23: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/23.jpg)
23
Combining Delivery & Data Collection
One final option (our original client’s needs)Use Data Collection to track DeliveriesReuse the High Volume Server for both Delivery
& Data Collection“Round Trip” feedback Loop
![Page 24: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/24.jpg)
24
Combination Approach – Both Delivery & Data Collection in one Node
High Volume Data Collection Node
TimesTen/IMDB
Ap
ach
e W
eb
Se
rve
rBackground Process
Custom Apache C Module
Sh
are
d M
emor
y
Ca
che
Gro
ups
Ca
che
Con
nect
RAC
HTTP
Direct
Direct
Java EEDelivery Servlet Direct
Low Volume Server
Pre
sen
tatio
n
Ap
plic
atio
n L
ogi
c
App Srv. Services
Bu
sin
ess
Lo
gic
Da
ta A
cce
ssHTTP JDBC
AJP
Mod
ule AJP
Exp
ose
s
![Page 25: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/25.jpg)
25
Combination – Data Flows
High Volume Data Collection Node
TimesTen/IMDB
Apa
che
Web
Ser
ver
Background Process
Custom Apache C Module
Sha
red
Me
mor
y
Ca
che
Gro
ups
Ca
che
Con
nect
RAC
HTTP
Direct
Direct
Java EEDelivery Servlet Direct
Low Volume Server
Pre
sen
tatio
n
Ap
plic
atio
n L
og
ic
App Srv. Services
Bu
sin
ess
Lo
gic
Da
ta A
cce
ssHTTP JDBC
AJP
Mod
ule AJP
Exp
ose
s
![Page 26: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/26.jpg)
26
Combination – Full Picture
Delivery/Data Collection Node
Background Processor
Operational RAC Instance
Delivery Servlet
Feedback Script
Data Collection Module
Delivery Required Data (R/O)
Aggregated Data (SWT)
Raw Data Coll.(Local TimesTen)
Operational DB
Aggregated Data ETL Scripts
DW RAC Instance
ETL Scripts
Staging Tables
DW Schema(Dimensional)
J2EEApache TimesTen OracleColors:
Read
Record
Use
![Page 27: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/27.jpg)
27
Questions?
Questions about Architecture?
![Page 28: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/28.jpg)
28
Other Issues: Connection Management
Internet
F5
LTM
340
0(L
ayer
7 S
witc
h)
`
Publisher Web Server
SSL – Direct Backbone Connection
WAP
Cable
DSL
Dial-Up
Gig
aBit
Eth
erne
t
HV Delivery Node
HV Delivery Node
HV Delivery Node
HV Delivery Node
HV Delivery Node
TimesTen/IMDB
Apa
che
Web
Ser
ver
AJP
Java EE App Server
Custom Apache C Module
Ser
vlet
JDB
C
Tim
esT
enD
river
Sha
red
Mem
ory
Cac
he G
roup
s
Cac
he C
onne
ctAJP Direct
Direct
![Page 29: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/29.jpg)
29
Other Issues: Hardware
Low Volume – Standard HardwareRAC Instance – Standard HardwareHigh Volume – Not Standard
– CPU Intensive– Memory Hogs– Saturates Network I/O– Odd Disk Usage (Sequential Writes)
TimesTen Group great at helping find write hardware!
![Page 31: A Presentation to Oracle OpenWorld Blistering Web Applications with Oracle TimesTen In Memory Option.](https://reader035.fdocuments.us/reader035/viewer/2022062804/56649ef15503460f94c027d4/html5/thumbnails/31.jpg)
A Presentation to Oracle OpenWorld
Blistering Web Applications with Oracle TimesTen In Memory Option