11-101026871-9.1SP4-Apparent bug in Load On demand Property

Post bug reports and the status of reported bugs
Post Reply
User avatar
Alan Kirk
Site Admin
Posts: 6606
Joined: Sun May 11, 2008 2:30 am
OLAP Product: TM1
Version: PA2.0.9.18 Classic NO PAW!
Excel Version: 2013 and Office 365
Location: Sydney, Australia
Contact:

11-101026871-9.1SP4-Apparent bug in Load On demand Property

Post by Alan Kirk »

I'm betting that the response I get to this is that the documentation is wrong and that it's always been this way, though admittedly I haven't had cause to use it very often in the past which means that I may not have noticed it in earlier versions. This is the report that I submitted to Iboglix, albeit without the graphic attachment:

-----------------------------------------------------------------------------------------------------------

There appears to be a bug in the Load on Demand property for cubes.

I encountered a number of problems loading our 8.2.12 production data in 9.1 SP4. Most of the time the server wouldn't start at all, with the service generating an error "TM1 Server Abort: System Out Of Memory." The TM1Server.log file read:

Code: Select all

308   ERROR   2008-11-16 23:02:09,092   TM1.Server.Memory   CommonAlloc - alloc (size = 131072) failed: Not enough storage is available to process this command.
To overcome that, I removed the largest .cub file from the data directory, restarted the server and set every remaining data cube to Load On Demand.

On that occasion the server started and appeared to be running normally... except that it wouldn't let anyone, not even TM1Top, connect to it. This in itself may be a separate bug, but I need to chase this down further to be able to replicate it. (Unless it's something that you're already aware of.)

I took out the large cube again and restarted the server. What I found was that every data cube which has rules had ignored the Load On Demand property for every cube that has rules in it, even if the rules are purely internal. (No calculations reading from the cube, no feeders going out from the cube.)

This isn't what the documentation says happens; it states that:

"By default, TMI loads all cubes into memory when a server starts. While this allows fast access to TM1 data, it can consume significant server resources. If your server contains infrequently accessed cubes, you can conserve resources by setting those cubes to load only when a client attempts to access the cube data."

Clearly, this isn't what's happening here. (Nor are any chores running which access the cubes. Only one chore is active on the 9.1 SP4 test server, and all it does is a scheduled data save.)

I've attached a screenshot showing the cube memory usage, with the properties dialog of the first cube (showing the load on demand checkbox checked) ovberlaid. There is no way on earth those first 10 or so cubes aren't fully loaded into memory.

On the other hand a couple of significant data cubes which have no rules at all show memory usage of only about 30k, which is what I'd expect.

Could you please investigate and advise.

Thank you.
"To them, equipment failure is terrifying. To me, it’s 'Tuesday.' "
-----------
Before posting, please check the documentation, the FAQ, the Search function and FOR THE LOVE OF GLUB the Request Guidelines.
User avatar
Alan Kirk
Site Admin
Posts: 6606
Joined: Sun May 11, 2008 2:30 am
OLAP Product: TM1
Version: PA2.0.9.18 Classic NO PAW!
Excel Version: 2013 and Office 365
Location: Sydney, Australia
Contact:

Re: 11-101026871-9.1SP4-Apparent bug in Load On demand Property

Post by Alan Kirk »

Alan Kirk wrote:I'm betting that the response I get to this is that the documentation is wrong and that it's always been this way, though admittedly I haven't had cause to use it very often in the past which means that I may not have noticed it in earlier versions.
It's unfortunate that I didn't have a few bucks on that bet, because that turned out to be the correct one. However it apparently applies to versions from 9.0 and upwards rather than to earlier versions. The core of the reply that I got was:
if a cube has the "Load on Demand" option checked but has a rule that includes feeders attached to it, the cube getting (completely) loaded into memory is by design. The cube is loaded in 9.0 and 9.1 *if the cube has a rule that includes feeders attached to it*.
Otherwise, the cube is not loaded if a cube has the "load on demand" option checked.
I can understand it if the cube has feeders pointing to another cube, since you'd need the first cube to be in memory to feed the second one. There's no particular reason why it should apply where the feeders are purely internal, though, unless there were technical problems in making it otherwise. (For example, the server may not have any way of knowing that the feeders are internal until it loads the cube, so there's no point unloading it after it discovers that when the work has already been done. This is of course speculation on my part and is neither here nor there; the important part is that if you use this feature, you need to be aware of the real as opposed to documented behaviour.)
"To them, equipment failure is terrifying. To me, it’s 'Tuesday.' "
-----------
Before posting, please check the documentation, the FAQ, the Search function and FOR THE LOVE OF GLUB the Request Guidelines.
John Hammond
Community Contributor
Posts: 295
Joined: Mon Mar 23, 2009 10:50 am
OLAP Product: PAW/PAX 2.0.72 Perspectives
Version: TM1 Server 11.8.003
Excel Version: 365 and 2016
Location: South London

Re: 11-101026871-9.1SP4-Apparent bug in Load On demand Property

Post by John Hammond »

Thanks Alan - I can confirm in 2022 this bug has not been resolved. The load on demand is ignored if the cube has any feeders including internal feeders!

As you say, IBM docs should be updated to say Load on Demand is effectively useless since large cubes will always have some type of feeders.

As always thanks to this forum for providing answers!

Elevator Pitch: "Please stop cubes that only feed themselves from ignoring Load on Demand"

Upshot is that some one told them they should force load cubes with intercube feeders to a cube that had been loaded already...

IBM solution = Force load all cubes with any feeders

Really grinding my gears this one!
Post Reply