8/10/2019 Amit_ Application Design for Performance
1/32
Copyright 2013 by Chris Barbieri, Edgewater RanzalCopyright 2013 by Chris Barbieri, Edgewater Ranzal
Hyperion Financial Management
Application Design for Performance
Chris Barbieri
8/10/2019 Amit_ Application Design for Performance
2/32
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 worlds largest HFM practice
8/10/2019 Amit_ Application Design for Performance
3/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Foundation of Performance
Focus first on single user
Metadata design as it
impacts performance
Volume of members
Impact of structures
Data
Content
Density
Rules
Environment
8/10/2019 Amit_ Application Design for Performance
4/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Metadata
8/10/2019 Amit_ Application Design for Performance
5/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Designing HFMs 12* Dimensions
Application Profile1. Year2. Period3. View
System4. Value dimension,
includes currencies
User controlled5. Entity6. Account
7. ICP
8. ScenarioUser defined
9. Custom 1
10. Custom 2
11. Custom 3
12. Custom 4
(*and more customs 11.1.2.2)
8/10/2019 Amit_ Application Design for Performance
6/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Application Profile
Year
No inherent impact on performance Can be increased afterthe 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 entireapplications design
Daily is inadvisableView
No impact, but only YTD is stored Other views are on-the-fly derivations
Consider number of UI clicks
8/10/2019 Amit_ Application Design for Performance
7/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
System DimensionValue Dimension
Can not directly modify this points to entitys default currency
points to default currency of the entitys parent Anything above must be Parent.Child format
Currencies Dont add currencies you arent using
Sets of calc status records for (every entity * every currency) Impact of loading metadata with entity or currency changes
Normally translate from the entitys currency only into its parentscurrency
Beware of non-default translations Impacted calc status
Data explosion
Adds to cycle time
8/10/2019 Amit_ Application Design for Performance
8/32
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 eachhierarchy
Assign Adj flags sparingly
Dont disable if you ever had journals on entity
ICP
Hidden dimension
Scenario
Number of tables
8/10/2019 Amit_ Application Design for Performance
9/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Impact of Account Depth
Effect is multiplied when you considerthe custom dimensions
Parent accounts dont lock
4- Net Income
3- Optg Income
2- Gross Margin
1- Sales
4- Optg Income
3- Gross Profit
2- Gross Margin
1- Sales
5- EBIT
6- Net Income
8/10/2019 Amit_ Application Design for Performance
10/32
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
8/10/2019 Amit_ Application Design for Performance
11/32
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
8/10/2019 Amit_ Application Design for Performance
12/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Metadata Volume Study: 82 appsMedian +1 Std Deviation High
Accounts 1,444 2,915 7,491
ICP Accounts With Plug 17 288 2,273Accounts With Data Audit 32 1,358 7,490
Consolidation Rules 45%
OrgBy Period 16%
Currencies 25 57 150
Custom1 181 3,219 23,897Custom2 72 2,374 20,484
Custom3 46 909 5,681
Custom4 19 182 1,199
Entity Hierarchies 4 12 44
Entities (unique) 672 4,352 21,199
ICP Members 208 1,160 7,770
Scenarios 12 29 81
Process Management
Scenarios
- 7 37
Scenarios Using Data Audit - 11 78
Using Phased Submission? 17%
8/10/2019 Amit_ Application Design for Performance
13/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Data
8/10/2019 Amit_ Application Design for Performance
14/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Whats 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
Currencysubcubes, stored inDCE tables
8/10/2019 Amit_ Application Design for Performance
15/32
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
8/10/2019 Amit_ Application Design for Performance
16/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Data Design
Density Content
Specifically: zeros Tiny numbers Invalid Records
Metadata volume is interesting, but its
how you it that matters most
8/10/2019 Amit_ Application Design for Performance
17/32
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 eventlogs
Good sense ofaverage cube, easy tomonitor monthlygrowth
Cant identifyindividual cubes,harder to understand
DatabaseAnalysis
Query DCE, DCNtables and count
Easy for a DBA, seeall subcubes
Doesnt countdynamic members,includes invalidrecords
8/10/2019 Amit_ Application Design for Performance
18/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Data Density Using FreeLRU
Number of applications reviewed
46
Median +1 Std Dev Min Max
NumCubesInRAM 1,369 9,426 72 51,840
NumDataRecordsInRAM 1,179,049 4,679,031 247,900 23,019,754
NumRecordsInLargestCube 53,089 167,085 2,508 5939!"
Records #er cube 1,352 15,537 24 91,418
Metadata e$$icienc% 3.4% 12.2% 0.3% 39.7%
8/10/2019 Amit_ Application Design for Performance
19/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Loaded vs. Consolidated Zeros
What percent of the loaded data is a
zero value?
8/10/2019 Amit_ Application Design for Performance
20/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Data Growth Up the Entity Hierarchy
Number of EntitiesTop of hierarchy 1
Total in hierarchy 5,571
Base of hierarchy 2,980
Base Entityinput 91records
Base Entitycalculated 153records
AverageEntity 178records
Top Entity
16,829 records
8/10/2019 Amit_ Application Design for Performance
21/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Loaded, Calculated, and Consolidated Data
Rough stats: median from 12 applications
+1 std deviation
MonthlyZeros
%MonthlyGrowth
RulesGrowth
Loaded Records153,826
534,239 4.3% 3.3%
Loaded + CalculatedRecords 349,360717,570 22.5% 2.7% 2.0
Consolidated
Records
62,090
142,432 8.7% 3.2%
8/10/2019 Amit_ Application Design for Performance
22/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Invalid Records
Type 1: Orphaned records from metadata that hasbeen deleted Member is removed from dimension_Item table, but not
from the data tables
These can be removed by Database > Delete InvalidRecords
Type 2: the member still exists, but is no longer in avalid intersection Most often from changing CustomX Top Member on an
account
These cannot be removed by HFM, but are filtered out inmemory
8/10/2019 Amit_ Application Design for Performance
23/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
So How Much Memory Do I Really Need?
Calculation Company
Number of entities 11,321
* 2 cubes: entity currency + contribution 11,321
Non-USD entities 2,939
add another cube for parent currency 2,939
Entity_value cubes 14,260
Actual 2013, 2012 2
Forecast1 2013, Plan 2013, TestForecast 2013 3
Tests, etc. 10
Total Year_scenarios 15Total cubes 213,900
Average records per cube 175
Optimal NumDataRecordsinRAM setting 37,432,500
bytes per record 120
Records * bytes converted to MB = MaxDataCacheSizeInMB 4,284
8/10/2019 Amit_ Application Design for Performance
24/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Rules Timing
8/10/2019 Amit_ Application Design for Performance
25/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Data Density Calc Time
correlation between density and calc times
Most applications are rules bound
-
0.500
1.000
1.500
2.000
2.500
-
100
200
300
400
500
600
700
800
900
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
Seconds
Records
Average Rule Execution Time in Contrast with Data Volume
8/10/2019 Amit_ Application Design for Performance
26/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
But Some Applications are I/O Bound
Time vs. Volume
050
100150200250300
350400450
_D
BM
.US
.US
.DE
.CN
BM
704
519
899
GO
808
545
801
828
851
.BE
.BR
820
856
S
econds
010,000
20,000
30,000
40,000
50,000
60,000
elapsedtotalrecords
HFM app server CPU is waiting for data
8/10/2019 Amit_ Application Design for Performance
27/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
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
0 0.25 2.0 4.0 10.0
Seconds Per Entity Per Period
8/10/2019 Amit_ Application Design for Performance
28/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Rules Impact Ratio
Total consolidation time withrules
Divided by time with Blank
Rules
Typically 2- 5 times
More than that is an
opportunity for improvement
8/10/2019 Amit_ Application Design for Performance
29/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
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 wont even exist
Studies show about 30% faster consolidation times
Must be enabled at app creation
Consolidation Rules = R
8/10/2019 Amit_ Application Design for Performance
30/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Reference
Application
8/10/2019 Amit_ Application Design for Performance
31/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Small but Constant Application
Applied across multiple environments
0:00:00
0:00:43
0:01:26
0:02:10
0:02:53
0:03:36
0:04:19
0:05:02
physical physical virtual virtual physical physical virtual physical virtual virtual virtual virtual virtual virtual virtual virtual virtual
HFM lab A: Dev B: Dev C: Dev K: FIT D: QA Ranzal:dev
L: Stage K: dev T-61laptop
E: non-prod
F: prod T-410laptop
G: Dev H: Dev H: prod I: prod
Full Rules
Blank Rules
Target
8/10/2019 Amit_ Application Design for Performance
32/32
Copyright 2013 by Chris Barbieri, Edgewater Ranzal
Chris Barbieri
USA
+1.617.480.6173
www.ranzal.com