HyperBlock Performance Improvement: TRUE-->TRUE change


The Anaplan platform leverages a patented in-memory, Java-based, planning engine for calculation called Hyperblock", as we can read in the CIO Guide White Paper on anaplan.com.

The engine allows to rapidly calculate billons of cells. It is also important to understand that it recalculates only what needs to be recalculated.

However, there is still room of improvement in this calculation logic. 

Currently, if we change a value in a line item, all the referenced line items are recalculated as well (and it is also narrowed down by dimensionality). It does not matter if the initial value is different, though.

Example -> if setting up a product price triggers a lot of calculation down stream. Let's assume it takes  5 seconds, to recalculate all the references. If we change the price from 10 to 10 (in fact no change, but we will still submit the result),

we still have to wait 5 seconds for all the downstream recalculations. This can be easily reproduced by anyone and measured using browser built in Dev Tools (ie. In Google Chrome we can use Ctrl+Shift+I Inspect -> Network).

Another example, when create a Boolean line item, with no dimensions (cell count: 1) and having this Boolean included as a condition at the beginning of the downstream calculation. If changing the value from TRUE to TRUE, everything would also be recalculated.

The idea is to improve the calculation engine logic to calculate all the referenced line items ONLY IF there is a real change of the initial line item (TRUE -> TRUE is not a change at the end and recalculation is not required).
Currently recalculation takes some time and putting the extra verification before each recalculation might also increate the overall calculation time even more in some cases (if indeed everything had to be recalculated). In this case, some simplifications could be considered as well.

It would be great to give modelers a new tool to be in a better control of this recalculation process (ie. Check only Booleans, or select in blueprint which line item is requesting the verification step).

27 votes

In Review · Last Updated


Get Started with Idea Exchange

See our Submission Guidelines and Idea Evaluation Criteria, then start posting your own ideas and showing support for others!