[Mondrian] RolapSchema Rev 92 Changelist 9138

Richard Emberson remberson at edgedynamics.com
Tue Aug 7 16:13:02 EDT 2007

Returning to the pre-changelist 9138 behavior we would have:

DynamicSchemaProcessor :
     Use dynamic schema processor
CatalogContent :
     Catalog content in connection string
UseContentChecksum :
     Use checksum to reuse RolapSchema objects. If RolapSchema already
     exists with same checksum, use it.
UseSchemaPool :
     Use schema pool (if false, always create a new schema object
     and do not put in pool)

UseSchemaPool.priority > UseContentChecksum.priority
     when UseSchemaPool is false, then do not use UseContentChecksum
CatalogContent.priority > DynamicSchemaProcessor.priority
     when CatalogContent exists, then do not use DynamicSchemaProcessor

I don't believe that coupling the value of the useSchemaPool
boolean to both UseSchemaPool and DynamicSchemaProcessor being
empty, adds an alternative that can not be achieved other ways,
in fact, it disallows using the DynamicSchemaProcessor
with the schema pool.


Julian Hyde wrote:
>> -----Original Message-----
>> From: mondrian-bounces at pentaho.org 
>> [mailto:mondrian-bounces at pentaho.org] On Behalf Of Richard Emberson
>> Sent: Tuesday, August 07, 2007 11:36 AM
>> To: mondrian at pentaho.org
>> Subject: [Mondrian] RolapSchema Rev 92 Changelist 9138
>> With Rev 92 of RolapSchema.java changelist 9138
>> went from:
>>              boolean useSchemaPool =
>>                  Boolean.parseBoolean(
>>                      connectInfo.get(
>> RolapConnectionProperties.UseSchemaPool.name(),
>>                          "true"));
>> to:
>>              final boolean useSchemaPool =
>>                  Boolean.parseBoolean(
>>                      connectInfo.get(
>> RolapConnectionProperties.UseSchemaPool.name(),
>>                          "true")) &&
>>                  Util.isEmpty(dynProcName);
>> Which means that if one uses a dynamic processor as part of
>> xmla, then each xmla request generates a new RolapSchema object.
>> Is this the intended behavior?
> There were quite a few other changes to that method. My intent was to clean
> up the rules for how the schema cache, MD5 checksum, and dynamic schema
> processor interact.
> We've never documented those rules, and trying to decipher the rules from
> that routine was like reading tea leaves. Can you describe what you think
> the current behavior is, and what you think it should be?
>> Can we have some mechanism of reusing RolapSchema objects
>> when dynamic processors are used?
> We need several behaviors. One way to reuse a RolapSchema object if the
> contents of the underlying URL have not changed; a way to create a new
> RolapSchema object if the contents of the underlying URL have changed OR of
> the dynamic schema processor deigns to spit out a different string; and a
> way to always create a new RolapSchema.
> Julian
> _______________________________________________
> Mondrian mailing list
> Mondrian at pentaho.org
> http://lists.pentaho.org/mailman/listinfo/mondrian

Quis custodiet ipsos custodes:
This email message is for the sole use of the intended recipient(s) and
may contain confidential information.  Any unauthorized review, use,
disclosure or distribution is prohibited.  If you are not the intended
recipient, please contact the sender by reply email and destroy all
copies of the original message.

More information about the Mondrian mailing list