Java Mailing List Archive

http://www.gg3721.com/

Home » users.openjpa »

Re: slow performance on MySql 5.0

Georgi Naplatanov

2008-08-26

Replies: Find Java Web Hosting

Author LoginPost Reply
Hello, Kevin.

The implementation with pooling of EntityManager instances is much
faster. With this implementation performance loss on PostgreSQL is less
than 10%, on MySql between 12-22% for web application which i test.

Best regards
Georgi

Georgi Naplatanov wrote:
> Hello, Kevin, thank you for ideas.
>
> I didn't think to pool EntityManager instances. I definitely will try it.
>
> Best regards
> Georgi
>
> Kevin Sutter wrote:
>> Georgi,
>> One of the first areas I would look at is the creation and destruction of
>> the EntityManagers. You mention that you are running with an extended
>> context, but does the application create or pool EntityManagers? Although
>> our testing has been with IBM databases, we have found that we get the best
>> performance with the minimum number of EntityManager creations. If you can
>> clear and reuse the EntityManagers, the overall performance will be better.
>>
>> There is another cache that helps with sql generation as well. It has a
>> couple of restrictions, but if the majority of your queries are simple
>> findby operations, this cache will help considerably. The property is
>> QuerySQLCache and it is documented in the OpenJPA 1.2.x manual (
>> http://openjpa.apache.org/builds/1.2.0/apache-openjpa-1.2.0/docs/manual/manual.html#ref_guide_cache_querysql
>> ).
>>
>> Hope this helps with getting better performance.
>>
>> Kevin
>>
>> On Mon, Aug 25, 2008 at 3:21 PM, Georgi Naplatanov <gosho@(protected):
>>
>>> Hello,
>>>
>>> I'm porting SQL/JDBC web application to JPA and i made some performance
>>> tests with PostgreSQL 8.3.3 and MySql 5.0.51a Community edition, with
>>> both - SQL/JDBC and OpenJPA implementations of the application.
>>>
>>>           Apache ab     Apache Jmeter
>>> PostgreSQL 8.3  -15%             -12%
>>> MySql 5.0.51a   -64%             -27%
>>>
>>> On both tests on PostgreSQL the performance loss is about 15% compared
>>> to pure SQL/JDBC implementation.
>>>
>>> On MySql the performance loss is very big especially on test with Apache
>>> ab utility.
>>>
>>> In the tests, OpenJPA 1.2.0 is configured with data cache enabled, query
>>> data cache disabled and query compilation cache - enabled. OpenJPA
>>> operates in extended context with Apache DBCP and statement pooling.
>>>
>>> Is this performance loss on MySql normal ? Does OpenJPA require some
>>> special configuration for MySql ?
>>>
>>> It is my persistence.xml file.
>>>
>>> <property name="openjpa.ConnectionProperties"
>>>                 value="DriverClassName=com.mysql.jdbc.Driver,
>>>                 Url=jdbc:mysql://localhost/mydb,
>>>                 Username=root,
>>>                 Password=123,
>>>                 maxActive=25,
>>>                 maxWait=25,
>>>                 minIdle=3,
>>>                 maxIdle=25,
>>>                 whenExhaustedAction=block,
>>>                 testOnBorrow=false,
>>>                 testWhileIdle=true,
>>>                 timeBetweenEvictionRunsMillis=3600000,
>>>                 numTestsPerEvictionRun=3,
>>>                 minEvictableIdleTime=1800000,
>>>                 testQuery=select 1,
>>>                 poolPreparedStatements=true"/>
>>>            <property name="openjpa.ConnectionDriverName"
>>>                 value="org.apache.commons.dbcp.BasicDataSource"/>
>>>
>>> <property name="openjpa.QueryCompilationCache" value="true"/>
>>> <property name="openjpa.QueryCache" value="false"/>
>>> <property name="openjpa.RemoteCommitProvider" value="sjvm"/>
>>> <property name="openjpa.DataCache" value="true(CacheSize=2000,
>>> SoftReferenceSize=0)"/>
>>> <property name="openjpa.FetchBatchSize" value="100"/>
>>> <property name="openjpa.ConnectionRetainMode" value="on-demand"/>
>>> <property name="openjpa.FlushBeforeQueries" value="true"/>
>>> <property name="openjpa.jdbc.DBDictionary"
>>>
>>> value="org.apache.openjpa.jdbc.sql.MySQLDictionary(SupportsSubselect=true)"/>
>>>
>>> Best regards
>>> Georgi
>>>
>
>

©2008 gg3721.com - Jax Systems, LLC, U.S.A.