Affects Version/s: None
Fix Version/s: 3.2.0 GA (3.6.0 GA Suite Release)
Environment:mondrian 3.1.1; mondrian latest from p4
We discovered that after putting in partial roll-up policy on several mid-size dimensions, the performance becomes very bad.
Attached is a modified FoodMart schema, with the following changes:
1. The Customers dimension is shared, and the Sales cube uses the dimension 3 times, i.e. [Customers], [Customers2], and [Customers3].
2. A role is created for each State+City combination, e.g. CA.Los Angeles, WA.Seattle, etc.
3. Each role restricts access to dimensions [Customers], [Customers], and [Customers3] for the particular State+City combination, with partial roll-up policy.
4. A role named "Test" is created to union all the above roles.
So, now we have partial roll-up policy on 3 dimensions with 10k members each.
Using the schema, the simplest MDX of:
SELECT FROM [Sales]
will take more than 60 seconds to finish on my Core 2 Duo 2GHz machine.
I think this performance problem makes Mondrian a rather poor choice for a multi-tenant database, where a restriction has to be set for each and every dimension. If there is no viable solution to this, perhaps a warning shall be placed at http://mondrian.pentaho.org/documentation/schema.php#Rollup_policy