Yup.. pretty much what we were/are doing.. only we used the clearCache() whenever an import occurred (user performs import). Unfortuately we need to upgrade mondrian since the version we were/are using is REALLY old.. and doesn't seem to have aggregate table support, or at least not as it should.. and the new version doesn't support clearCache. What I'm looking for with mondrian
2.4 is a way to specify the whole cube in a "region" for invalidation (similar to clearCache()). I'll take a look at the DataSourceChangeListener in any case... thanks...<br><br><br>On the multiple schema XML side... anyone have any experiences/ideas/hints? I mean.. is there some mondrian function that I need to call via the API or something before I switch schemas? Or do I need to approach this differently ???
<br><br>Cheers<br>Ati<br><br><div class="gmail_quote">On Dec 5, 2007 10:21 AM, Pappyn Bart <<a href="mailto:Bart.Pappyn@vandewiele.com">Bart.Pappyn@vandewiele.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">Hi Ati,</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">I have a real world application that is running good at
more than 15 sites for now. My database has two fact tables, both
identical in layout. One contains the hot data (today), the other one the
archived data. My system is a sort of real-time olap (data is updated all
the time, but only reflected every 5 minutes in the hot fact table). My
database is updated using transactions.</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">The first is implemented in a cube with all cache turned
off and does not have aggregate tables. The second one has cache turned on
and has aggregate tables. Both are combined in a virtual cube, both share
the same dimensions.</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">The aggregate tables are calculated at night. I use
the DataSourceChangeListener to check whether an aggregation table is
changed. </font></span><span><font color="#0000ff" face="Arial" size="2">I use RolapSchema.clearCache(); to flush the
cache after all aggregation tables are done. I flush dimension cache using
the DataSourceChangeListener, in that case, there is no need to clear the full
cache. I have a special table in my database containing the name of the
table and the time the aggregation is done. This way I can communicate
using the DataSourceChangeListener and the database without having to know about
the ETL process that is running in C++.</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">I use the previous version of mondrian (2.3.2), I know the
function RolapSchema.clearCache() was deprecated and I assume it no longer
exists in the latest version. I don't see the benefit of only flushing
certain parts of the cube, since a) I don't know what to flush b) Almost
everything is changed. Also I assume that dimension cache is still not
flushable (I might be wrong about that), besides using
DataSourceChangeListener.</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">There is a period at night where results might be wrong
using this approach, but since at that time, my users only check data from today
(monitoring purpose), there are no huge problems.</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">The performance is ok (2-10 sec for a report), the database
is 5 - 10 GB for 1 year data. </font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">I am using this approach for over a year now, and is
actively running on multiple sites, without any problems.</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">While I developed DataSourceChangeListener for the 2.3.2
release, I do not have the time for the moment to check if it is still working
in the latest release. I had to stop taking the latest version of
mondrian, because my application is using almost all features that mondrian
contains. And every build of mondrian broke something in my
application. So maintaining DataSourceChangeListener was a never ending
story and I had no time left for developing my own
application.</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><span><font color="#0000ff" face="Arial" size="2">There are
multiple users that are using the system at the same time, I also had to develop
special features for mondrian for this (for cache flushing and real time
results). Not sure if they are still in place in the latest
release.</font></span></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">Kind regards,</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">Bart</font></span></div><br>
<div dir="ltr" align="left" lang="en-us">
<hr>
<font face="Tahoma" size="2"><b>From:</b> <a href="mailto:mondrian-bounces@pentaho.org" target="_blank">mondrian-bounces@pentaho.org</a>
[mailto:<a href="mailto:mondrian-bounces@pentaho.org" target="_blank">mondrian-bounces@pentaho.org</a>] <b>On Behalf Of </b>Ati
Rosselet<br><b>Sent:</b> dinsdag 4 december 2007 18:44<br><b>To:</b> Mondrian
developer mailing list<br><b>Subject:</b> [Mondrian] multiple schemas? cache
management?<br></font><br></div><div><div></div><div class="Wj3C7c">
<div></div>In previous versions of mondrian, I could just provide a different
schema with a query (notably through jpivot) and the data for that schema would
be loaded and cached... seperately. This was important because we had
multiple schemas in different files, each with their own set of roles etc .. and
it worked fine keeping them seperate. To my suprise, when we ported to the
new mondrain, it seems to just cache the FIRST schema file we provide, and
ignore any others... thus of course leading to the hierarchy/dimension/member
not found errors. My question is simply... what changed.. and is it still
possible to use multiple schemas via jpivot especially.... <br><br>a seperate
question - we're having a tough time getting our brains around the new cache
invalidation - is there any way to just say.. ok... reload everything (or
pertaining to a certain cube??)? We have to reload all the aggregate
tables using a procedure anyways, so pretty much everything is affected.. or can
be... is there no way to just say cache.clear().. or something? Does
anyone have any real life examples of cache management they could
share?<br>Cheers<br>Ati<br><br><br><br></div></div>______________________________________________________________________<br>This
email has been scanned by the Email Security
System.<br>______________________________________________________________________<br></div>
<br>_______________________________________________<br>Mondrian mailing list<br><a href="mailto:Mondrian@pentaho.org">Mondrian@pentaho.org</a><br><a href="http://lists.pentaho.org/mailman/listinfo/mondrian" target="_blank">
http://lists.pentaho.org/mailman/listinfo/mondrian</a><br><br></blockquote></div><br>