...could not write dimension definition to disk storage...

Post Reply
appleglaze28
Regular Participant
Posts: 269
Joined: Tue Apr 21, 2009 3:43 am
OLAP Product: Cognos TM1, Planning
Version: 9.1 SP3 9.4 MR1 FP1 9.5
Excel Version: 2003

...could not write dimension definition to disk storage...

Post by appleglaze28 »

I have this cube with with a size of 200,000kb++

I have a view I used as a data source to input specific amounts to another version and tag it in another cube as finished. I just noticed as I keep looking into the TI process that this message occur even if the process is completed successfully.

For a cube that runs out of memory at some instance of opening the cube it I expect the transfer to take so long not a second or 2.

Is it possible that the TI process terminates it if runs out of memory during the process and still prompt a completed process?
Attachments
ti-error.PNG
ti-error.PNG (58.09 KiB) Viewed 4376 times
dan.kelleher
Community Contributor
Posts: 128
Joined: Wed Oct 14, 2009 7:46 am
OLAP Product: TM1
Version: 9.4
Excel Version: 11
Location: London

Re: ...could not write dimension definition to disk storage.

Post by dan.kelleher »

As far as I'm aware, this message can be ignored as it is just a progress report as opposed to an error message. I have seen this on multiple occasions and have just ignored it.

If your message log tells you the process has completed successfully, I'd trust it over the screenshot you provided.
lotsaram
MVP
Posts: 3706
Joined: Fri Mar 13, 2009 11:14 am
OLAP Product: TableManager1
Version: PA 2.0.x
Excel Version: Office 365
Location: Switzerland

Re: ...could not write dimension definition to disk storage.

Post by lotsaram »

Typically this error message is caused by updating a dimension with a while loop on the prolog. All dimension updates on the prolog are comitted INSTANTANEOUSLY to memory (and to disk). It is just that the disk IO can't possibly keep up with TI. You don't get this on the meta data as updates are committed only once when reading the data source finishes. As Dan has said this can be ignorred, it is not really an error.
User avatar
Martin Ryan
Site Admin
Posts: 2003
Joined: Sat May 10, 2008 9:08 am
OLAP Product: TM1
Version: 10.1
Excel Version: 2010
Location: Wellington, New Zealand
Contact:

Re: ...could not write dimension definition to disk storage.

Post by Martin Ryan »

lotsaram wrote:All dimension updates on the prolog are comitted INSTANTANEOUSLY to memory (and to disk).
This is news to me. I thought all metadata updates were done at the close of the metadata tab.

Is this a change, or has it always been this way?

Martin
Please do not send technical questions via private message or email. Post them in the forum where you'll probably get a faster reply, and everyone can benefit from the answers.
Jodi Ryan Family Lawyer
Alan Kirk
Site Admin
Posts: 6667
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: ...could not write dimension definition to disk storage.

Post by Alan Kirk »

Martin Ryan wrote:
lotsaram wrote:All dimension updates on the prolog are comitted INSTANTANEOUSLY to memory (and to disk).
This is news to me. I thought all metadata updates were done at the close of the metadata tab.

Is this a change, or has it always been this way?
Yeah, due respect to Lotsa but I'm afraid I must disagree on this one. My understanding of dimension changes, based on work with the API which is I imagine not too different from how TI does it, is that you create a copy of the dim in memory, make the changes on the copy, then overwrite the original. This is, I believe, what happens at the end of the Metadata tab (and possibly the Prolog tab as well, but I haven't tested that). Instantaneous changes using that methodology would seem to hammer the system a bit hard.

Consider the following two processes:

Process 1 Prolog

Code: Select all

s_DimName = 'z_Test';

DimensionCreate(s_DimName);
DimensionElementInsert(s_DimName, '','Element 1','N');

ExecuteProcess( 'zTest2', 'Call', 'Prolog');

l = DimSiz ( s_DimName);

AsciiOutput ( 'C:\Temp\TestDimProc1.txt', NumberToString ( l ) );
Process 1 Epilog

Code: Select all

ExecuteProcess( 'zTest2', 'Call', 'Epilog');
Process 2 Prolog

Code: Select all

s_DimName = 'z_Test';

s_OutputFile = 'C:\Temp\TestDimProc' | Call | '.txt';

l = DimSiz ( s_DimName);

AsciiOutput (s_OutputFile, NumberToString ( l ) );
Now, what you get out of these is:
Prolog call to Process 2 (and its AsciiOutput) = 0
Call to Process 1's AsciiOutput = 1
Epilog call to Process 2 (and its AsciiOutput) = 1

This makes sense. What appears to be happening is that the copy of the dimension that Process 1 is (presumed, by me at least to be) working on does indeed have one element. Consequently the Prolog AsciiOut of that process shows 1. The copy is updated in real time... but that's not the dimension that the rest of the system knows about.

Consequently at the time that the Prolog call to process 2 is done, process 2 knows nothing of any such elements and returns 0. (NB: For some reason doing a DimSiz on a non-existent dim doesn't cause an error (in 9.5.2 at least), it just returns 0. My belief is that process 2 doesn't even know the new dim exists yet because it hasn't been registered. Certainly it clearly doesn't know anything about an element in that dim,even though the element was "created" before the call was made.)

However the Epilog call to Process 2 does know about the element, because, I believe, the dimension was registered either at the end of the Prolog tab or as the process slipped over the Metadata stage. (Neither process had a data source.)

Edit: Incidentally, an AsciiOutput in Process1's Prolog before the call to Process 2 will also yield "1".
"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.
Alan Kirk
Site Admin
Posts: 6667
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: ...could not write dimension definition to disk storage.

Post by Alan Kirk »

Martin Ryan wrote:
lotsaram wrote:All dimension updates on the prolog are comitted INSTANTANEOUSLY to memory (and to disk).
This is news to me. I thought all metadata updates were done at the close of the metadata tab.

Is this a change, or has it always been this way?
It's fortunate that I'm not a cat, because I'd be quite dead by now.

While waiting for some people to send me some data that I need, I got curious about the second arm of that statement; the question of whether it saves to disk immediately. The short version is that some disk writing can, but doesn't always, happen, so the reason for the problem can indeed be the one suggested.

I put a loop into the prolog after the dimension changes had been done to effectively pause the process for a couple of minutes (actually just loop for a couple of minutes), and watched what happened in the data directory.

When the process is used to create a new dimension, a .dim$ file (that is, the "half way house" file) is created straight away. When the loop (and therefore the Prolog ends, that file is replaced by the proper .dim file.

When the process is used to update a dimension, however, whether that's by only inserting new elements, or whether it's by inserting a new consolidation, inserting new elements and adding them to the consolidation) then the .dim$ file will not be created prior to the loop running. (It may well be created upon the save of the dimension at the end of the Prolog as an interim stage before the .dim is replaced, but there's no way to slow that down to see it.) In addition, the timestamp on the .dim file will not change while the loop is running, despite the addition of the new elements / hierarchy. That file's timestamp will only update when the process ends.

So the .dim file is not updated immediately... but in some circumstances an intermediate "$" file will be written to the disk, which could cause the error as Lotsaram described.
"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.
appleglaze28
Regular Participant
Posts: 269
Joined: Tue Apr 21, 2009 3:43 am
OLAP Product: Cognos TM1, Planning
Version: 9.1 SP3 9.4 MR1 FP1 9.5
Excel Version: 2003

Re: ...could not write dimension definition to disk storage.

Post by appleglaze28 »

I just thought of asking the experts here if for some reason...this message during the process could probably roll back the process or something cause my TI to be completed but not work how its suppose to work. The TI is basic...use TM1 cube as a source. place some static text using certain dimensions in the view to another view and copy the data from one cube to another but for some reason the data isn't doing what its suppose to be doing.
Post Reply