Top Banner

of 32

Amit_ Application Design for Performance

Jun 02, 2018

Download

Documents

Araz2008
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 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

    [email protected], MA

    USA

    +1.617.480.6173

    www.ranzal.com