[Mondrian] RE: Eigenbase perforce change 9201 for review

John V. Sichi jsichi at gmail.com
Mon May 7 12:45:10 EDT 2007


http://www.perforce.com/perforce/technotes/note014.html

JVS

Thiyagu Palanisamy wrote:
> 
> Julian,
> 
> 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 
> /edu.emory.mathcs.backport.java.util.concurrent.locks.ReentrantReadWriteLock/ 
>  based on JDK version flag.
> 
> Can you please roll back or tell us how to rollback our change 9201?
> 
> Thanks,
> Thiyagu
> 
> 
> 
> 
> 
> *"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>
> 
> 
> 	
> To
> 	"'Mondrian developer mailing list'" <mondrian at pentaho.org>
> cc
> 	
> Subject
> 	RE: [Mondrian] RE: Eigenbase perforce change 9201 for review
> 
> 
> 	
> 
> 
> 
> 
> 
> Thiyagu,
>  
> 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_ 
> <http://lists.pentaho.org/pipermail/mondrian/2007-April/000401.html> 
> 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.
>  
> Julian
> 
> ------------------------------------------------------------------------
> *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
> 
> 
> Julian,
> 
> 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 suite.
> 
> 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?
> 
> 
> Thanks,
> Thiyagu
> 
> 
> *"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>
> 
> 	
> To
> 	"'Thiyagu Palanisamy'" <thiyagu at gmail.com>
> cc
> 	mondrian at pentaho.org
> Subject
> 	[Mondrian] RE: Eigenbase perforce change 9201 for review
> 
> 
> 
> 	
> 
> 
> 
> 
> 
> 
> Thiyagu,
> 
> 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
> upgrade!
> 
> Julian
> 
>  > -----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
> http://lists.pentaho.org/mailman/listinfo/mondrian
> _______________________________________________
> Mondrian mailing list
> Mondrian at pentaho.org
> http://lists.pentaho.org/mailman/listinfo/mondrian
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Mondrian mailing list
> Mondrian at pentaho.org
> http://lists.pentaho.org/mailman/listinfo/mondrian




More information about the Mondrian mailing list