Amit_ Application Design for Performance
Short Description
Design...
Description
Hyperion Financial Management
Application Design for Performance
Chris Barbieri
Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Personal Background
Established HFM performance tuning techniques and statistics widely used today 4+ years as Sr. Product Issues Manager at Hyperion 2001 HFM launch team 2001 Certified HFM, Hyperion Enterprise B.S. Finance & Accounting, Boston College MBA, Babson College Established HFM Performance Tuning Lab at Ranzal ●
Vice President of world’s largest HFM practice
Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Personal Background
Established HFM performance tuning techniques and statistics widely used today 4+ years as Sr. Product Issues Manager at Hyperion 2001 HFM launch team 2001 Certified HFM, Hyperion Enterprise B.S. Finance & Accounting, Boston College MBA, Babson College Established HFM Performance Tuning Lab at Ranzal ●
Vice President of world’s largest HFM practice
Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Foundation of Performance
Focus first on single user Metadata design as it impacts performance ● ●
Data ● ●
Volume of members Impact of structures Content Density
Rules Environment
Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Metadata
Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Designing HFM’s 12* Dimensions Application Profile 1. Year 2. Period 3. View
User controlled 5. Entity 6. Account 7. ICP 8. Scenario
System 4. Value dimension,
includes currencies
User defined Custom 1 10. Custom 2 11. Custom 3 12. Custom 4 (*and more customs 11.1.2.2) 9.
Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Application Profile Year ● ● ●
No inherent impact on performance Can be increased after the application is built Impacts database table volume
Period ●
●
●
Base periods comprise column structure of every table, whether you use them or not Avoid weekly profiles unless it is key to your entire application’s design Daily is inadvisable
View ● ●
No impact, but only YTD is stored Other views are on-the-fly derivations ●
Consider number of UI clicks Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
System Dimension Value Dimension ● ● ●
Can not directly modify this “” points to entity’s default currency “” points to default currency of the entity’s parent ●
Anything above “” must be Parent.Child format
Currencies ●
Don’t add currencies you aren’t using ●
●
●
●
Sets of calc status records for (every entity * every currency) Impact of loading metadata with entity or currency changes
Normally translate from the entity’s currency only into it’s parent’s currency Beware of non-default translations ●
●
●
Impacted calc status Data explosion Adds to cycle time Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
User Controlled Dimensions Entity ● ●
●
Single biggest factor in consolidation time Avoid Consolidate All or All With Data on each hierarchy Assign Adj flags sparingly ●
Don’t disable if you ever had journals on entity
ICP ●
“Hidden” dimension
Scenario ●
Number of tables Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Impact of Account Depth
6- Net Income
4- Net Income
5- EBIT
3- Optg Income 2- Gross Margin
4- Optg Income
1- Sales
3- Gross Profit 2- Gross Margin 1- Sales
Effect is multiplied when you consider the custom dimensions Parent accounts don’t lock Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
User Defined Dimensions Custom 1..4 ●
Think dozens or hundreds; resist thousands ●
●
●
●
If Thousands are necessary, 64 bit makes this possible Rules remain a major factor in performance UI click
Avoid: ●
●
●
●
Employees Detailed Products Anything that is very dynamic, changing greatly from year to year One to one relationship with the entities
Configurable dimensions in 11.1.2.2 Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Metadata Efficiency Ratio What does the average entity have in common with the top entity? ●
Measure re-use of accounts and customs across entities top entity
base
Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Metadata Volume Study: 82 apps Median
+1 Std Deviation
Accounts 1,444 ICP Accounts With Plug 17 Accounts With Data Audit 32 Consolidation Rules 45% OrgBy Period 16% Currencies 25 Custom1 181 Custom2 72 Custom3 46 Custom4 19 Entity Hierarchies 4 Entities (unique) 672 ICP Members 208 Scenarios 12 Process Management Scenarios Scenarios Using Data Audit Copyright ©2013 by Chris Barbieri, Edgewater Ranzal Using Phased Submission? 17%
High
2,915 288 1,358
7,491 2,273 7,490
57 3,219 2,374 909 182 12 4,352 1,160 29 7
150 23,897 20,484 5,681 1,199 44 21,199 7,770 81 37
11
78
Data
Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
What’s a Subcube?
HFM data structure Database tables stored by ● ●
Each record contains all periods for a [Year] All records for a subcube are loaded into memory together
Parent subcube, stored in DCN tables Currency subcubes, stored in DCE tables Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Take it to the Limit Reports, Grids, or Forms that: ● ● ●
Pull lots of entities Lots of years Lots of scenarios
Not so problematic: ● ●
Lots of accounts Lots of custom members
Smart View ● ●
Subcubes impact server performance Cell volume impacts bandwidth Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Data Design “Metadata volume is interesting, but it’s how you
it that matters most”
Density Content ● ● ●
Specifically: zeros Tiny numbers Invalid Records
Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Data Volume Measurement
No perfect method
Method
How-To
Pros
Cons
Data Extract
Extract all data, count per entity
Simple, easy to see input from calculated
Can only extract
FreeLRU
Parse HFM event logs
Good sense of average cube, easy to monitor monthly growth
Can’t identify individual cubes, harder to understand
Database Analysis
Query DCE, DCN tables and count
Easy for a DBA, see all subcubes
Doesn’t count dynamic members, includes invalid records
Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Data Density Using FreeLRU Number of applications reviewed
Median +1 Std Dev
Min
Max
46
NumCubesInRAM NumDataRecordsInRAM NumRecordsInLargestCube Records #er cube Metadata e$$icienc%
1,369
9,426
72
51,840
1,179,049
4,679,031
247,900
23,019,754
53,089
167,085
2,508
5939!"
1,352
15,537
24
91,418
3.4%
12.2%
0.3%
39.7%
Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Loaded vs. Consolidated Zeros
What percent of the loaded data is a zero value? ● ● ●
Delete Invalid Records
Type 2: the member still exists, but is no longer in a valid intersection ●
●
Most often from changing CustomX Top Member on an account These cannot be removed by HFM, but are filtered out in memory Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
So… How Much Memory Do I Really Need? Calculation Number of entities * 2 cubes: entity currency + contribution Non-USD entities add another cube for parent currency Entity_value cubes Actual 2013, 2012 Forecast1 2013, Plan 2013, TestForecast 2013 Tests, etc. Total Year_scenarios Total cubes Average records per cube Optimal NumDataRecordsinRAM setting bytes per record Records * bytes converted to MB = MaxDataCacheSizeInMB
Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Company 11,321 11,321 2,939 2,939 14,260 2 3 10 15 213,900 175 37,432,500 120 4,284
Rules Timing
Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Data Density Calc Time Average Rule Execution Time in Contrast with Data Volume 900
2.500
800 2.000
700 600
1.500
s d 500 r o c e 400 R
1.000
s d n o c e S
300 200
0.500
100 -
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
correlation between density and calc times Most applications are rules bound Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
But Some Applications are I/O Bound Time vs. Volume 450 400 350 s 300 d n250 o c 200 e S150 100 50 0
60,000 50,000 elapsed totalrecords
40,000 30,000 20,000 10,000
S 9 9 O 8 5 1 8 1 E R 0 6 D M U S E N M 4 9 0 0 4 0 2 5 2 5 _ B . U B 7 1 . D 5 8 G 8 5 8 8 8 B . B . 8 8 . C .
HFM app server CPU is waiting for data Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
0
How Long Should Rules Take?
Total consolidation time in seconds,12 periods ● ●
Consolidate All With Data for consistency, reliability Fastest of three consecutive runs
Divide by 12 periods and total number of entities ●
Descendants inclusive of POV parent
Seconds Per Entity Per Period 0 0.25
2.0
4.0
10.0
Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Rules Impact Ratio
Total consolidation time with rules Divided by time with Blank Rules Typically 2- 5 times More than that is an opportunity for improvement Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Consolidation Rules = “R”
Ideal for simple applications that do not need consolidation rules Skips writing [Proportion] to the database ● ●
Smaller DCN tables If no [Elimination], [Parent Adjs] or [Contribution Adjs] the DCN tables won’t even exist
Studies show about 30% faster consolidation times Must be enabled at app creation
Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Reference Application
Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
Small but Constant Application 0:05:02
0:04:19
Full Rules 0:03:36
Blank Rules 0:02:53
0:02:10
Target
0:01:26
0:00:43
0:00:00
physical physical
virtual
virtual physical physical
virtual
virtual
virtual
virtual
HFM lab A: Dev
B: Dev
C: Dev
Ranzal: L: Stage K: dev dev
T-61 laptop
E: non- F: prod prod
K: FIT
D: QA
physical
virtual
virtual
virtual
virtual
T-410 laptop
G: Dev
H: Dev H: prod
Applied across multiple environments Copyright ©2013 by Chris Barbieri, Edgewater Ranzal
virtual
virtual I: prod
View more...
Comments