Asgeir-
You may already be too far down the path with your rules and feeder-based solution, but I thought I'd offer an alternative.
For the Balance YTD and recursive balance calculations over time (like beginning and ending balances) which can be problematic for feeders (controlling feeding and stack overflows) we've had great success utilizing alternate hierarchies.
Basically, we create an alternate hierarchy that contains all of the balances to date and then use a rule to bring those values over to the time period in the "same named" hierarchy. It's extremely fast because it utilizes the consolidation engine to do all the hard work. We've been able to have systems compute these types of recursive balances at a daily grain over 10 years negligible impact on memory and performance.
Chris
------------------------------
Chris Courim
------------------------------
Original Message:
Sent: Mon April 22, 2024 09:29 PM
From: Ryan Clapp
Subject: Swapping Feeders for ConsolidatedChildren
I agree with Luc.
However, there seems to be a bit more to unpack. Have you verified that your feeders are causing your memory growth? When you removed the feeders, did you clear them too (cube clear data, build a new cube, restarted the server, etc)? Removing feeders and adding ConsolidateChildren won't fix null suppression.
------------------------------
Ryan Clapp
Original Message:
Sent: Fri April 19, 2024 11:26 AM
From: Asgeir Thorgeirsson
Subject: Swapping Feeders for ConsolidatedChildren
Hi all,
I've been dealing with heavy memory usage on our TM1 server, presumably due to cubes with complex feeders for calculations like Balance YTD, currency adjustments, account manipulations, etc.
I experimented with a different approach. I removed all the feeders and, instead, added the ConsolidatedChildren function across dimensions where hierarchies are present. To avoid affecting other consolidated rules, I placed the ConsolidatedChildren function just before Feeders in the rules editor. Now, consolidated members seem to be automatically fed.
Example:
[]=C: ConsolidateChildren('Company', 'Accounts', 'Months', 'Value_Type');
FEEDERS;
#No Feeders
I'm curious to hear if others have explored something similar and if there is a better approach.
Cheers, Asgeir
------------------------------
Asgeir Thorgeirsson
------------------------------