cross-tier application and data partitioning of web applications for hybrid cloud deployment
TRANSCRIPT
![Page 1: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/1.jpg)
Cross-Tier Application & Data Partitioning of Web Applications
for Hybrid Cloud Deployment
Nima Kaviani Eric Wohlstadter
Rodger Lea
1
![Page 2: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/2.jpg)
Motivation – Cloud Computing
• Virtualization• Multi-tenancy• Scalability• Cheaper Deployments
However …Loss of controlRegulations (HIPAA, PCI)AuditingOutages…
2
![Page 3: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/3.jpg)
Motivation – Cloud Computing
• Virtualization• Multi-tenancy• Scalability• Cheaper Deployments
However …Loss of controlRegulations (HIPAA, PCI)AuditingOutages…
3
![Page 4: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/4.jpg)
Motivation – Hybrid Cloud• Combine Private cloud and Public IaaS• Split Architecture
4
![Page 5: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/5.jpg)
Motivation – Hybrid Cloud• Combine Private cloud and Public IaaS• Split Architecture• Software = Code + Data
5
![Page 6: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/6.jpg)
Motivation – Hybrid Cloud• Combine Private cloud and Public IaaS• Split Architecture• Data Placement Constraints
6
![Page 7: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/7.jpg)
Motivation – Hybrid Cloud• Combine Private cloud and Public IaaS• Split Architecture• Code Placement Constraints
7
![Page 8: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/8.jpg)
Motivation – Hybrid Cloud• Combine Private cloud and Public IaaS• Split Architecture• Inter code/data placement constraints
8
![Page 9: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/9.jpg)
Motivation – Hybrid Cloud• Combine Private cloud and Public IaaS• Split Architecture• Trade-off cross-cuts the system
Trade-off between Cost and Control
CHALLENGE…
9
![Page 10: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/10.jpg)
Motivation – Hybrid Cloud• Combine Private cloud and Public IaaS• Split Architecture• OLTP-style Web Applications
Trade-off between Cost and Control
CHALLENGE…
10
![Page 11: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/11.jpg)
Motivation – Hybrid Cloud• Combine Private cloud and Public IaaS• Split Architecture• OLTP-style Web Applications
Trade-off between Cost and Control
CHALLENGE…
11
Code = Software FunctionsData= Database Tables
![Page 12: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/12.jpg)
Related Work
12
![Page 13: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/13.jpg)
19
Partitioning Problem
Integer ProgrammingLibrary
Premise
Monolithic Profiling
Cloud
![Page 14: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/14.jpg)
Application Partitioning
CodeProfiling Application-
Tier BIP
BIP Solver
Code PlacementMANTICORE
Nima Kaviani, Eric Wohlstadter, Rodger Lea. MANTICORE: a Framework for Partitioning Software Services for Hybrid Cloud. In Proceedings of the 4th IEEE International Conference on Cloud Computing Technologies and Science, December 2012, Taipei, Taiwan, pages 333-340.
20
![Page 15: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/15.jpg)
Cross-tier Partitioning
CodeProfiling Application-
Tier BIP
BIP Solver
Code PlacementMANTICORE
21
![Page 16: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/16.jpg)
Cross-tier Partitioning
CodeProfiling Application-
Tier BIP
EXPLAINPLAN
CreateObjectiveFunction
CreateConstraints
Join Orders
Combined Partitioning
Solver
Code Placement
Table Placement
22
![Page 17: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/17.jpg)
Data-tier Partitioning
23
Engineers know: Database knows:
• Code and data dependencies• Data placement constraints
• Inter-data dependencies• Query cost models
Model the combined knowledge & Solve it!
![Page 18: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/18.jpg)
Example Cross-tier Request FlowPull up user information and Stock holdings for a given user id
24
AppTierAppTier
DataTierDataTier
Request
Query
![Page 19: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/19.jpg)
Example Cross-tier Request FlowPull up user information and Stock holdings for a given user id
doGetUserStock
getUserInfo
executeQuery
renderHTML
ha
p userprofile (p)
holdings (h)account (a)
25
AppTierAppTier
DataTierDataTier
Request
Query
![Page 20: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/20.jpg)
Example Cross-tier Request FlowPull up user information and Stock holdings for a given user id(USER DATA ON PREMISE)
doGetUserStock
getUserInfo
executeQuery
renderHTML
ha
p userprofile (p)
holdings (h)account (a)
USER DATA: Constrained to be on premise
26
![Page 21: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/21.jpg)
Intra-Query Dependencies
ha
p
pa
h
Local Execution
Pull up user information and Stock holdings for every user
27
doGetUserStock
getUserInfo
executeQuery
renderHTMLTwo choices
1.How bad would it be if we move or not move holding table to the cloud
2.How bad would it be if we join accounte and userporfile tables first
![Page 22: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/22.jpg)
Intra-Query Dependencies
ha
p
pa
h
Pull up user information and Stock holdings for every user
Two cuts /two round-trips
Approach 1: Keep sensitive data on private premise
28
doGetUserStock
getUserInfo
executeQuery
renderHTML
![Page 23: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/23.jpg)
Intra-Query Dependencies
ha
p
pa
h
Pull up user information and Stock holdings for every user
More premiseresource usage
Approach 2: Push everything to private premise
29
doGetUserStock
getUserInfo
executeQuery
renderHTML
![Page 24: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/24.jpg)
Intra-Query Dependencies
ha
p
pa
h
Alternative Execution
Approach 3: Findalternative plans
1. One cut / less round-trip2. Less premise resource usage
30
doGetUserStock
getUserInfo
executeQuery
renderHTML
![Page 25: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/25.jpg)
Data Dependency Analysis
1. Analyze Alternative Plans2. Collect Data on Every Plan3. Create Mathematical Model
1. Define BIP Constraints2. Define BIP Objective
4. Combine with Code Partitioning
31
![Page 26: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/26.jpg)
1. Analyze Alternative Plans
Problem: Find performance for various plans
Solution:-Improve complexity
- Encode 2M alternative plans
- M is the number of tables in a plan
- M < 10
- M stable with the application size
- O (Q x 2M) vs. O (2N)
Straw man 1:-Try all 2N placements for tables
-N >> 10 and grows with the application size
Straw man 2:-Have all the analysis on one machine
-Inapplicable data
32
![Page 27: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/27.jpg)
2. Use EXPLAIN PLAN for Profiling
EXPLAIN PLAN FOR SELECT p.*, h.* FROM
holding h, accountprofile p,
account a WHERE
h.accountid = a.accountid AND
a.userid = p.userid AND h.quote_symbol = ? AND
a.accountid = ?
34
![Page 28: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/28.jpg)
Creating the Mathematical Model
• Encode join alternatives• Encode placement of tables in a join• Encode the objective–Minimizing cost –Minimizing performance
38
![Page 29: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/29.jpg)
4. Combine with Code Partitioning
39
doGetUserStock
getUserInfo
executeQuery
renderHTML
pa
h userprofile (p)
holdings (h)account (a)
Combining objectives and constraints:
![Page 30: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/30.jpg)
Generate the Results
Code on premiseCode in the cloud
Data on premiseData in the cloud
40
![Page 31: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/31.jpg)
Evaluation• Apache Day Trader – Open Source Trading Web App
• RUBiS – Open Source Auctioning Web App
• 2 Premise Machines
– Database Machine (2.5GHz dual core, 4GB RAM)
– Application Server (3.5GHz dual core, 4GB RAM)
• Cloud Instance– Amazon West Region (Oregon)
2 EC2 Large Compute Units
• User sensitive tables are pinned to the premise– Account & AccountProfile tables for Apache Day Trader
– Users table for RUBiS
• 15ms latency
41
![Page 32: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/32.jpg)
Evaluation - Deployments
doGetUserStock
getUserInfo
executeQuery
renderHTML
pa
h userprofile (p)
holdings (h)account (a)
Private Premise42
![Page 33: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/33.jpg)
Evaluation - Deployments
doGetUserStock
getUserInfo
executeQuery
renderHTML
pa
h userprofile (p)
holdings (h)account (a)
doGetUserStock
getUserInfo
executeQuery
renderHTML
pa
h userprofile (p)
holdings (h)account (a)
Private Premise Naïve Hybrid43
![Page 34: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/34.jpg)
Evaluation - Deployments
doGetUserStock
getUserInfo
executeQuery
renderHTML
pa
h userprofile (p)
holdings (h)account (a)
Code Split44
![Page 35: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/35.jpg)
Evaluation - Deployments
doGetUserStock
getUserInfo
executeQuery
renderHTML
ha
p userprofile (p)
holdings (h)account (a)
doGetUserStock
getUserInfo
executeQuery
renderHTML
pa
h userprofile (p)
holdings (h)account (a)
Code Split Cross-tier45
![Page 36: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/36.jpg)
Evaluation - PerformanceHow is the performance affected with different models of deployment?
46
Cross-Tier deployment exhibits:28 - 56% improvement compared to Naïve-
Hybrid15 - 45% improvement compared to Split-Code
![Page 37: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/37.jpg)
Evaluation – Deployment CostsHow is the cost affected with different models of deployment?
47
Cross-Tier deployment exhibits:20 - 54% cheaper than Naïve-Hybrid11 - 29% cheaper than Split-Code
![Page 38: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/38.jpg)
Evaluation – ScalabilityHow is the scalability affected with different models of deployment?
48
Cross-Tier deployment exhibits:best scalability compared to all deploymentsNo performance degradation
![Page 39: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/39.jpg)
Challenges
49
![Page 40: Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment](https://reader036.vdocuments.site/reader036/viewer/2022062405/556c574cd8b42acc228b49f6/html5/thumbnails/40.jpg)
Contributions
•Cross-tier partitioning provides options between cost, performance, and privacy
•We solved the combined partitioning problem
•Our evaluations show effectiveness of cross-tier partitioning
50