[hibernate-dev] Memory consumption

Shawn Clowater shawn.clowater at Entero.com
Mon Nov 12 12:15:55 EST 2007


Sorry, I should have been clearer.  The memory consumption we were
seeing was caused from the following from the ActionQueue.

public void execute(Executable executable) {
		final boolean lockQueryCache =
session.getFactory().getSettings().isQueryCacheEnabled();
		if ( executable.hasAfterTransactionCompletion() ||
lockQueryCache ) {
			executions.add( executable );
		}
		if (lockQueryCache) {
			session.getFactory()
				.getUpdateTimestampsCache()
				.preinvalidate(
executable.getPropertySpaces() );
		}
		executable.execute();
	}

Any action that is executed where the query cache is enabled will get
added to the executions list and won't be able to be garbage collected.
Living without the query cache was the lesser of 2 evils for us.

-----Original Message-----
From: Emmanuel Bernard [mailto:emmanuel at hibernate.org] 
Sent: Monday, November 12, 2007 9:42 AM
To: Shawn Clowater
Cc: hibernate-dev at lists.jboss.org
Subject: Re: [hibernate-dev] Memory consumption

No what I am talking about is not related to the caching system.

On  Nov 12, 2007, at 17:31, Shawn Clowater wrote:

> I believe this only comes into play if you are using query  
> caching.  We
> had to turn that off for this very reason.
>
> -----Original Message-----
> From: hibernate-dev-bounces at lists.jboss.org
> [mailto:hibernate-dev-bounces at lists.jboss.org] On Behalf Of Emmanuel
> Bernard
> Sent: Sunday, November 11, 2007 5:29 PM
> To: Markus Heiden
> Cc: hibernate-dev at lists.jboss.org
> Subject: Re: [hibernate-dev] Memory consumption
>
> You're missing one part, how about custom event listeners. Hibernate
> Search used to use those events and needed the entity instances for
> example.
> For the optimization, the JIRA issue has not been created AFAIK.
>
> On  Nov 11, 2007, at 17:00, Markus Heiden wrote:
>
>> Hi Emmanuel,
>>
>>> You need it for the post commit insert event.
>>
>> I know, but during the execution of "post commit" code of the
>> EntityInsertAction only the id of the instance is needed and this
>> should be retrievable after a flush. So in all cases there is no
>> need to keep the reference to the instance after flushing.
>>
>>> But we could optimize that if there is no such event.
>>
>> Anyway this solution would be sufficient for first. Or does
>> hibernate keeps references to instances after a flush somewhere
>> else too?
>> Shall I create a JIRA issue?
>>
>> Markus Heiden
>>
>>
>
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev





More information about the hibernate-dev mailing list