[Mondrian] RE: Eigenbase perforce change 9201 for review

Thiyagu Palanisamy tpalanis at thoughtworks.com
Mon May 7 06:24:15 EDT 2007


ReEntrantReadWriteLock is not supported by retorweaver, which we were 
planning to use to optimize the synchronization blocks. 

We can use java.util.concurrent.locks,ReentrantReadWriteLock or 
 based on JDK version flag.

Can you please roll back or tell us how to rollback our change 9201?


"Julian Hyde" <julianhyde at speakeasy.net> 
Sent by: mondrian-bounces at pentaho.org
05/04/2007 06:05 AM
Please respond to
Mondrian developer mailing list <mondrian at pentaho.org>

"'Mondrian developer mailing list'" <mondrian at pentaho.org>

RE: [Mondrian] RE: Eigenbase perforce change 9201 for review

I'd like to know what the issues with java.util.concurrent & retroweaver 
are. I ran into some issues with retroweaver, but I was able to work 
around them.
I saw Tushar's email last week, but I was at the MySQL conference so I was 
too busy to respond.
Sometimes retroweaver requires explicit upcasts in order for things to 
work. Or maybe you could roll your own implementation of some of the 
concurrency primitives which work adequately but not optimally under 
jdk1.4. Or, as I said earlier, there is a lot of mileage in the 
Switching to a different back-porting package is a major change which will 
soak up my time in packaging the release, writing release notes and 
testing. I will not do it unless you can demonstrate significant 
advantages to doing so, and you convince me that you have tried every 
other workaround.

From: mondrian-bounces at pentaho.org [mailto:mondrian-bounces at pentaho.org] 
On Behalf Of Thiyagu Palanisamy
Sent: Thursday, May 03, 2007 3:07 AM
To: Mondrian developer mailing list
Subject: Re: [Mondrian] RE: Eigenbase perforce change 9201 for review


 We are working on implementing Parallel Sql query execution, for that we 
need to use java.util.concurrent package. RetroWeaver has some issues in 
porting those classes. 

 There are two options to handle this, 
1. Don't use java.util.concurrent package and look for other alternatives 
such as using the backport util, which means performance degradation and 
not using the latest Java api's for new development. 
2. Finding alternative to port those classes. 

So we have gone with the 2nd option. We have run all the tests using the 
retrotranslator. We intend to make everyone to switch to retrotranslator, 
but we didn't want to force immediately without running every ones test 

We have not measured any performance benefits between them because we 
don't have any benchmark test scripts. 

UtilCompatible interfaces: This will introduce additional work of 
generifying all the not supported functions and maintaining two 
implementation bridges(We might end up with JDK1.5 using 
java.util.concurrent and 1.4 using backport util). 
If  retrotransalator causes any issue for the existing users then we can 
consider this option? 


"Julian Hyde" <julianhyde at speakeasy.net> 
Sent by: mondrian-bounces at pentaho.org 
05/03/2007 02:24 PM 

Please respond to
Mondrian developer mailing list <mondrian at pentaho.org>

"'Thiyagu Palanisamy'" <thiyagu at gmail.com> 
mondrian at pentaho.org 
[Mondrian] RE: Eigenbase perforce change 9201 for review


Can you elaborate why you need this change? I am loathe to support a new
means of generating jdk14-compatible jar files.

If you intend to use features which retroweaver cannot handle, then
everyone is going to need to switch to retrotranslator, yes?

How great is the performance benefit of using these features versus the
features which retroweaver can handle?

An alternative approach would be to put the incompatible code behind the
UtilCompatible interface. (I did this for EnumSet because retroweaver
does not handle this correctly.) JDK1.4 users would not get the benefit
of these features, but hey, we need to give them some incentive to


> -----Original Message-----
> From: Thiyagu Palanisamy [mailto:thiyagu at gmail.com] 
> Sent: Wednesday, May 02, 2007 11:40 PM
> To: Andreas Voss; Bart Pappyn; Julian Hyde; John V. Sichi; 
> Matt Campbell; Sam Birney; Zelaine Fong
> Subject: Eigenbase perforce change 9201 for review
> http://p4web.eigenbase.org/@md=d&c=6PU@//9201?ac=10
> Change 9201 by thiyagu at thiyagu.laptop.dev on 2007/05/02 23:39:06
>                  MONDRIAN: Added new build target for  retro translator. 

> Retrotranslator supports more advavnced features of 
> java.util.concurrent which is not supported by Retroweaver. 
> Parellel Query Execution implementation needs this.
> Affected files ...
> ... //open/mondrian/build.xml#158 edit
> ... //open/mondrian/lib/backport-util-concurrent-3.0.jar#1 add
> ... //open/mondrian/lib/retrotranslator-runtime-1.2.1.jar#1 add
> ... //open/mondrian/lib/retrotranslator-transformer-1.2.1.jar#1 add
> Differences ...
> ==== //open/mondrian/build.xml#158 (ktext) ====
> 2c2
> <   == $Id: //open/mondrian/build.xml#157 $
> ---
> >   == $Id: //open/mondrian/build.xml#158 $
> 130a131,132
> >     <pathelement 
> location="${lib.dir}/retrotranslator-runtime-1.2.1.jar" />
> >     <pathelement 
> location="${lib.dir}/backport-util-concurrent-3.0.jar" />
> 756a759,760
> > ${lib.dir}/retrotranslator-runtime-1.2.1.jar,
> > ${lib.dir}/backport-util-concurrent-3.0.jar,
> 793a798,799
> > ${lib.dir}/retrotranslator-runtime-1.2.1.jar,
> > ${lib.dir}/backport-util-concurrent-3.0.jar,
> 1200a1207,1251
> >     <!-- > >          Just like Retroweaver, Retrotranslator also 
> re-engineers JDK 1.5-compatible code so it can run under
> >          JDK 1.4. Retrotranslator supports backporting of 
> more advavnced features of java.util.concurrent.
> > 
> >          This task compiles all core and test classes under 1.5
> >          then runs retrotranslator to make them 1.4 compatible.
> > 
> >          If you only intend to run on JDK 1.5, there's no 
> need to call this task.
> > 
> >          The inputs to this process are the mondrian.jar 
> file (containing core
> >          files) and the testclasses directory (containing 
> test classes).
> > 
> >          The outputs from this process are the 
> mondrian-jdk14.jar file
> >          and the testclasses-jdk14 directory.
> > 
> >          Note that this task does not modify classes in place.
> > 
> >          After you've run this task, you can invoke 'build 
> test' from a JDK 1.4
> >          and all the tests will run. You should also be 
> able replace mondrian.jar
> >          with mondrian-jdk14.jar and 
> retrotranslator-runtime-1.2.1.jar (retrotranslator's
> >          runtime library) in your web application and run 
> jpivot, but I haven't
> >          tried that.
> > 
> >          When you run the regression under JDK 1.4, you 
> must use ant-1.6.0.
> >          Later versions of ant include junit4, which 
> requires JDK 1.5.
> >           -->
> >     <target name="retrotranslator" depends="jar, compile.tests">
> >         <taskdef name="retrotranslator" 
> classname="net.sf.retrotranslator.transformer.RetrotranslatorTask">
> >             <classpath>
> >                 <pathelement 
> location="${lib.dir}/retrotranslator-transformer-1.2.1.jar"/>
> >                 <pathelement 
> location="${lib.dir}/retrotranslator-runtime-1.2.1.jar"/>
> >                 <pathelement 
> location="${lib.dir}/backport-util-concurrent-3.0.jar"/>
> >             </classpath>
> >         </taskdef>
> >         <delete quiet="true">
> >             <fileset dir="." includes="${jar-jdk14.file}"/>
> >             <fileset dir="${testclasses-jdk14.dir}"/>
> >         </delete>
> >         <mkdir dir="${testclasses-jdk14.dir}"/>
> >         <retrotranslator destdir="${testclasses-jdk14.dir}" 
> verify="false">
> >             <fileset dir="${testclasses.dir}" 
> includes="**/*.class"/>
> >         </retrotranslator>
> >         <retrotranslator srcjar="${jar.file}" 
> destjar="${jar-jdk14.file}" verify="false"/>
> >     </target>
> > 

Mondrian mailing list
Mondrian at pentaho.org
Mondrian mailing list
Mondrian at pentaho.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.pentaho.org/pipermail/mondrian/attachments/20070507/909c22dc/attachment.html 

More information about the Mondrian mailing list