Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc)  » Teneo: performance fall of HibernatePersistableEList
Teneo: performance fall of HibernatePersistableEList [message #68304] Fri, 19 January 2007 12:27 Go to next message
Ilya Klyuchnikov is currently offline Ilya KlyuchnikovFriend
Messages: 74
Registered: July 2009
Member
When list is already loaded by eager loading or by subselect fetch
loading then HibernatePersistableEList isLoaded() method in this case
calls doLoad. doLoad() method begins transaction and commit transaction
when there is no need for it.

I have profiled my eclipse application:
HibernatePersistableEList.doLoad was called 455 times and cumulative
time was 91 secs.

JDBCTransaction was called 456 and cumulative time was 76 secs.

The first transaction is initial loading and the next transactions are
not needed at all.

So my application looses many idle time.

Is it possible not to begin and commit transaction in
HibernatePersistableEList when list is already loaded?

Thanks.

Ilya.
Re: Teneo: performance fall of HibernatePersistableEList [message #68316 is a reply to message #68304] Fri, 19 January 2007 12:38 Go to previous messageGo to next message
Martin Taal is currently offline Martin TaalFriend
Messages: 5468
Registered: July 2009
Senior Member
Hi Ilya,
Are you using the latest teneo build? Something similar should have been solved in the latest build.
See also the newsgroup discussion here:
http://dev.eclipse.org/newslists/news.eclipse.technology.emf t/msg01687.html

gr. Martin

Ilya Klyuchnikov wrote:
> When list is already loaded by eager loading or by subselect fetch
> loading then HibernatePersistableEList isLoaded() method in this case
> calls doLoad. doLoad() method begins transaction and commit transaction
> when there is no need for it.
>
> I have profiled my eclipse application:
> HibernatePersistableEList.doLoad was called 455 times and cumulative
> time was 91 secs.
>
> JDBCTransaction was called 456 and cumulative time was 76 secs.
>
> The first transaction is initial loading and the next transactions are
> not needed at all.
>
> So my application looses many idle time.
>
> Is it possible not to begin and commit transaction in
> HibernatePersistableEList when list is already loaded?
>
> Thanks.
>
> Ilya.


--

With Regards, Martin Taal

Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
Re: Teneo: performance fall of HibernatePersistableEList [message #68325 is a reply to message #68316] Fri, 19 January 2007 12:51 Go to previous messageGo to next message
Ilya Klyuchnikov is currently offline Ilya KlyuchnikovFriend
Messages: 74
Registered: July 2009
Member
I am using Teneo I200701051518.

Described problem is real problem for me.

Details:

I have about 500 collections already loaded by fetch subselect - 2-3
collections are loaded from HibernatePersistableEList's point of view
and delegates for others are loaded.

So when I touch collections with already loaded delegates -
HibernatePersistableEList.isLoaded() is called. This method reveals that
delegate is loaded but isLoaded field is false. So it calls doLoad()
method. DoLoad() method begins and commit transaction (but there is no
need for it - cause delegate is already loaded). transaction.commit
takes very long time.

BTW I have made workaround in my app - I have introduced
SessionController (so HibernatePersistableEList doesn't begin and commit
transactions) for my resource and time of touching of all my collections
(from UI) reduced from 91 sec to 9 sec.

So main point: there is no need to begin and commit transaction in
HibernatePersistableEList when delegate is already loaded.

Ilya

Martin Taal wrote:
> Hi Ilya,
> Are you using the latest teneo build? Something similar should have been
> solved in the latest build. See also the newsgroup discussion here:
> http://dev.eclipse.org/newslists/news.eclipse.technology.emf t/msg01687.html
>
> gr. Martin
>
> Ilya Klyuchnikov wrote:
>> When list is already loaded by eager loading or by subselect fetch
>> loading then HibernatePersistableEList isLoaded() method in this case
>> calls doLoad. doLoad() method begins transaction and commit
>> transaction when there is no need for it.
>>
>> I have profiled my eclipse application:
>> HibernatePersistableEList.doLoad was called 455 times and cumulative
>> time was 91 secs.
>>
>> JDBCTransaction was called 456 and cumulative time was 76 secs.
>>
>> The first transaction is initial loading and the next transactions are
>> not needed at all.
>>
>> So my application looses many idle time.
>>
>> Is it possible not to begin and commit transaction in
>> HibernatePersistableEList when list is already loaded?
>>
>> Thanks.
>>
>> Ilya.
>
>
Re: Teneo: performance fall of HibernatePersistableEList [message #68336 is a reply to message #68325] Fri, 19 January 2007 12:52 Go to previous messageGo to next message
Martin Taal is currently offline Martin TaalFriend
Messages: 5468
Registered: July 2009
Senior Member
Yes I agree, this can be improved. Can you enter a bugzilla for this? I plan to do a new release
next week which will contain a fix for this.

gr. Martin

Ilya Klyuchnikov wrote:
> I am using Teneo I200701051518.
>
> Described problem is real problem for me.
>
> Details:
>
> I have about 500 collections already loaded by fetch subselect - 2-3
> collections are loaded from HibernatePersistableEList's point of view
> and delegates for others are loaded.
>
> So when I touch collections with already loaded delegates -
> HibernatePersistableEList.isLoaded() is called. This method reveals that
> delegate is loaded but isLoaded field is false. So it calls doLoad()
> method. DoLoad() method begins and commit transaction (but there is no
> need for it - cause delegate is already loaded). transaction.commit
> takes very long time.
>
> BTW I have made workaround in my app - I have introduced
> SessionController (so HibernatePersistableEList doesn't begin and commit
> transactions) for my resource and time of touching of all my collections
> (from UI) reduced from 91 sec to 9 sec.
>
> So main point: there is no need to begin and commit transaction in
> HibernatePersistableEList when delegate is already loaded.
>
> Ilya
>
> Martin Taal wrote:
>> Hi Ilya,
>> Are you using the latest teneo build? Something similar should have
>> been solved in the latest build. See also the newsgroup discussion here:
>> http://dev.eclipse.org/newslists/news.eclipse.technology.emf t/msg01687.html
>>
>>
>> gr. Martin
>>
>> Ilya Klyuchnikov wrote:
>>> When list is already loaded by eager loading or by subselect fetch
>>> loading then HibernatePersistableEList isLoaded() method in this case
>>> calls doLoad. doLoad() method begins transaction and commit
>>> transaction when there is no need for it.
>>>
>>> I have profiled my eclipse application:
>>> HibernatePersistableEList.doLoad was called 455 times and cumulative
>>> time was 91 secs.
>>>
>>> JDBCTransaction was called 456 and cumulative time was 76 secs.
>>>
>>> The first transaction is initial loading and the next transactions
>>> are not needed at all.
>>>
>>> So my application looses many idle time.
>>>
>>> Is it possible not to begin and commit transaction in
>>> HibernatePersistableEList when list is already loaded?
>>>
>>> Thanks.
>>>
>>> Ilya.
>>
>>


--

With Regards, Martin Taal

Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
Re: Teneo: performance fall of HibernatePersistableEList [message #68347 is a reply to message #68336] Fri, 19 January 2007 13:03 Go to previous message
Ilya Klyuchnikov is currently offline Ilya KlyuchnikovFriend
Messages: 74
Registered: July 2009
Member
I have created bug report #171035.

Ilya

Martin Taal wrote:
> Yes I agree, this can be improved. Can you enter a bugzilla for this? I
> plan to do a new release next week which will contain a fix for this.
>
> gr. Martin
>
> Ilya Klyuchnikov wrote:
>> I am using Teneo I200701051518.
>>
>> Described problem is real problem for me.
>>
>> Details:
>>
>> I have about 500 collections already loaded by fetch subselect - 2-3
>> collections are loaded from HibernatePersistableEList's point of view
>> and delegates for others are loaded.
>>
>> So when I touch collections with already loaded delegates -
>> HibernatePersistableEList.isLoaded() is called. This method reveals
>> that delegate is loaded but isLoaded field is false. So it calls
>> doLoad() method. DoLoad() method begins and commit transaction (but
>> there is no need for it - cause delegate is already loaded).
>> transaction.commit takes very long time.
>>
>> BTW I have made workaround in my app - I have introduced
>> SessionController (so HibernatePersistableEList doesn't begin and
>> commit transactions) for my resource and time of touching of all my
>> collections (from UI) reduced from 91 sec to 9 sec.
>>
>> So main point: there is no need to begin and commit transaction in
>> HibernatePersistableEList when delegate is already loaded.
>>
>> Ilya
>>
>> Martin Taal wrote:
>>> Hi Ilya,
>>> Are you using the latest teneo build? Something similar should have
>>> been solved in the latest build. See also the newsgroup discussion here:
>>> http://dev.eclipse.org/newslists/news.eclipse.technology.emf t/msg01687.html
>>>
>>>
>>> gr. Martin
>>>
>>> Ilya Klyuchnikov wrote:
>>>> When list is already loaded by eager loading or by subselect fetch
>>>> loading then HibernatePersistableEList isLoaded() method in this
>>>> case calls doLoad. doLoad() method begins transaction and commit
>>>> transaction when there is no need for it.
>>>>
>>>> I have profiled my eclipse application:
>>>> HibernatePersistableEList.doLoad was called 455 times and cumulative
>>>> time was 91 secs.
>>>>
>>>> JDBCTransaction was called 456 and cumulative time was 76 secs.
>>>>
>>>> The first transaction is initial loading and the next transactions
>>>> are not needed at all.
>>>>
>>>> So my application looses many idle time.
>>>>
>>>> Is it possible not to begin and commit transaction in
>>>> HibernatePersistableEList when list is already loaded?
>>>>
>>>> Thanks.
>>>>
>>>> Ilya.
>>>
>>>
>
>
Re: Teneo: performance fall of HibernatePersistableEList [message #601364 is a reply to message #68304] Fri, 19 January 2007 12:38 Go to previous message
Martin Taal is currently offline Martin TaalFriend
Messages: 5468
Registered: July 2009
Senior Member
Hi Ilya,
Are you using the latest teneo build? Something similar should have been solved in the latest build.
See also the newsgroup discussion here:
http://dev.eclipse.org/newslists/news.eclipse.technology.emf t/msg01687.html

gr. Martin

Ilya Klyuchnikov wrote:
> When list is already loaded by eager loading or by subselect fetch
> loading then HibernatePersistableEList isLoaded() method in this case
> calls doLoad. doLoad() method begins transaction and commit transaction
> when there is no need for it.
>
> I have profiled my eclipse application:
> HibernatePersistableEList.doLoad was called 455 times and cumulative
> time was 91 secs.
>
> JDBCTransaction was called 456 and cumulative time was 76 secs.
>
> The first transaction is initial loading and the next transactions are
> not needed at all.
>
> So my application looses many idle time.
>
> Is it possible not to begin and commit transaction in
> HibernatePersistableEList when list is already loaded?
>
> Thanks.
>
> Ilya.


--

With Regards, Martin Taal

Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
Re: Teneo: performance fall of HibernatePersistableEList [message #601375 is a reply to message #68316] Fri, 19 January 2007 12:51 Go to previous message
Ilya Klyuchnikov is currently offline Ilya KlyuchnikovFriend
Messages: 74
Registered: July 2009
Member
I am using Teneo I200701051518.

Described problem is real problem for me.

Details:

I have about 500 collections already loaded by fetch subselect - 2-3
collections are loaded from HibernatePersistableEList's point of view
and delegates for others are loaded.

So when I touch collections with already loaded delegates -
HibernatePersistableEList.isLoaded() is called. This method reveals that
delegate is loaded but isLoaded field is false. So it calls doLoad()
method. DoLoad() method begins and commit transaction (but there is no
need for it - cause delegate is already loaded). transaction.commit
takes very long time.

BTW I have made workaround in my app - I have introduced
SessionController (so HibernatePersistableEList doesn't begin and commit
transactions) for my resource and time of touching of all my collections
(from UI) reduced from 91 sec to 9 sec.

So main point: there is no need to begin and commit transaction in
HibernatePersistableEList when delegate is already loaded.

Ilya

Martin Taal wrote:
> Hi Ilya,
> Are you using the latest teneo build? Something similar should have been
> solved in the latest build. See also the newsgroup discussion here:
> http://dev.eclipse.org/newslists/news.eclipse.technology.emf t/msg01687.html
>
> gr. Martin
>
> Ilya Klyuchnikov wrote:
>> When list is already loaded by eager loading or by subselect fetch
>> loading then HibernatePersistableEList isLoaded() method in this case
>> calls doLoad. doLoad() method begins transaction and commit
>> transaction when there is no need for it.
>>
>> I have profiled my eclipse application:
>> HibernatePersistableEList.doLoad was called 455 times and cumulative
>> time was 91 secs.
>>
>> JDBCTransaction was called 456 and cumulative time was 76 secs.
>>
>> The first transaction is initial loading and the next transactions are
>> not needed at all.
>>
>> So my application looses many idle time.
>>
>> Is it possible not to begin and commit transaction in
>> HibernatePersistableEList when list is already loaded?
>>
>> Thanks.
>>
>> Ilya.
>
>
Re: Teneo: performance fall of HibernatePersistableEList [message #601377 is a reply to message #68325] Fri, 19 January 2007 12:52 Go to previous message
Martin Taal is currently offline Martin TaalFriend
Messages: 5468
Registered: July 2009
Senior Member
Yes I agree, this can be improved. Can you enter a bugzilla for this? I plan to do a new release
next week which will contain a fix for this.

gr. Martin

Ilya Klyuchnikov wrote:
> I am using Teneo I200701051518.
>
> Described problem is real problem for me.
>
> Details:
>
> I have about 500 collections already loaded by fetch subselect - 2-3
> collections are loaded from HibernatePersistableEList's point of view
> and delegates for others are loaded.
>
> So when I touch collections with already loaded delegates -
> HibernatePersistableEList.isLoaded() is called. This method reveals that
> delegate is loaded but isLoaded field is false. So it calls doLoad()
> method. DoLoad() method begins and commit transaction (but there is no
> need for it - cause delegate is already loaded). transaction.commit
> takes very long time.
>
> BTW I have made workaround in my app - I have introduced
> SessionController (so HibernatePersistableEList doesn't begin and commit
> transactions) for my resource and time of touching of all my collections
> (from UI) reduced from 91 sec to 9 sec.
>
> So main point: there is no need to begin and commit transaction in
> HibernatePersistableEList when delegate is already loaded.
>
> Ilya
>
> Martin Taal wrote:
>> Hi Ilya,
>> Are you using the latest teneo build? Something similar should have
>> been solved in the latest build. See also the newsgroup discussion here:
>> http://dev.eclipse.org/newslists/news.eclipse.technology.emf t/msg01687.html
>>
>>
>> gr. Martin
>>
>> Ilya Klyuchnikov wrote:
>>> When list is already loaded by eager loading or by subselect fetch
>>> loading then HibernatePersistableEList isLoaded() method in this case
>>> calls doLoad. doLoad() method begins transaction and commit
>>> transaction when there is no need for it.
>>>
>>> I have profiled my eclipse application:
>>> HibernatePersistableEList.doLoad was called 455 times and cumulative
>>> time was 91 secs.
>>>
>>> JDBCTransaction was called 456 and cumulative time was 76 secs.
>>>
>>> The first transaction is initial loading and the next transactions
>>> are not needed at all.
>>>
>>> So my application looses many idle time.
>>>
>>> Is it possible not to begin and commit transaction in
>>> HibernatePersistableEList when list is already loaded?
>>>
>>> Thanks.
>>>
>>> Ilya.
>>
>>


--

With Regards, Martin Taal

Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
Re: Teneo: performance fall of HibernatePersistableEList [message #601383 is a reply to message #68336] Fri, 19 January 2007 13:03 Go to previous message
Ilya Klyuchnikov is currently offline Ilya KlyuchnikovFriend
Messages: 74
Registered: July 2009
Member
I have created bug report #171035.

Ilya

Martin Taal wrote:
> Yes I agree, this can be improved. Can you enter a bugzilla for this? I
> plan to do a new release next week which will contain a fix for this.
>
> gr. Martin
>
> Ilya Klyuchnikov wrote:
>> I am using Teneo I200701051518.
>>
>> Described problem is real problem for me.
>>
>> Details:
>>
>> I have about 500 collections already loaded by fetch subselect - 2-3
>> collections are loaded from HibernatePersistableEList's point of view
>> and delegates for others are loaded.
>>
>> So when I touch collections with already loaded delegates -
>> HibernatePersistableEList.isLoaded() is called. This method reveals
>> that delegate is loaded but isLoaded field is false. So it calls
>> doLoad() method. DoLoad() method begins and commit transaction (but
>> there is no need for it - cause delegate is already loaded).
>> transaction.commit takes very long time.
>>
>> BTW I have made workaround in my app - I have introduced
>> SessionController (so HibernatePersistableEList doesn't begin and
>> commit transactions) for my resource and time of touching of all my
>> collections (from UI) reduced from 91 sec to 9 sec.
>>
>> So main point: there is no need to begin and commit transaction in
>> HibernatePersistableEList when delegate is already loaded.
>>
>> Ilya
>>
>> Martin Taal wrote:
>>> Hi Ilya,
>>> Are you using the latest teneo build? Something similar should have
>>> been solved in the latest build. See also the newsgroup discussion here:
>>> http://dev.eclipse.org/newslists/news.eclipse.technology.emf t/msg01687.html
>>>
>>>
>>> gr. Martin
>>>
>>> Ilya Klyuchnikov wrote:
>>>> When list is already loaded by eager loading or by subselect fetch
>>>> loading then HibernatePersistableEList isLoaded() method in this
>>>> case calls doLoad. doLoad() method begins transaction and commit
>>>> transaction when there is no need for it.
>>>>
>>>> I have profiled my eclipse application:
>>>> HibernatePersistableEList.doLoad was called 455 times and cumulative
>>>> time was 91 secs.
>>>>
>>>> JDBCTransaction was called 456 and cumulative time was 76 secs.
>>>>
>>>> The first transaction is initial loading and the next transactions
>>>> are not needed at all.
>>>>
>>>> So my application looses many idle time.
>>>>
>>>> Is it possible not to begin and commit transaction in
>>>> HibernatePersistableEList when list is already loaded?
>>>>
>>>> Thanks.
>>>>
>>>> Ilya.
>>>
>>>
>
>
Previous Topic:Teneo: performance fall of HibernatePersistableEList
Next Topic:OCL link constraint queries
Goto Forum:
  


Current Time: Tue Apr 16 19:46:50 GMT 2024

Powered by FUDForum. Page generated in 2.80695 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top