[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3357?page=c...
]
Alex Pires de Camargo commented on HHH-3357:
--------------------------------------------
Its not just a performance improvement, the fix for HHH-511 generated this exponential
search on clear (its linear for evict, exponential for clear). Session.clear should not
take minutes to run in session with many proxies opened, in 3.2.3 or previous takes no
time.
I would open a bug for this, but as you have already reported the problem, I found better
to add more info to your report. If you prefer I can open another ticket.
session.clear() takes too long
------------------------------
Key: HHH-3357
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3357
Project: Hibernate Core
Issue Type: Improvement
Components: core
Affects Versions: 3.2.5, 3.2.6
Reporter: Jay Erb
Attachments: LazyInitializerPatch.txt
Clearing a session that contains a large number of Proxies takes a very long time. The
reason for this is that null is set on the LazyInitializer when clearing the
StatefulPersistenceContext, whenever a new session is set on an AbstractLazyInitializer, a
check is done to see if the AbstractLazyInitializer is still attached to its previous
session (and correctly throws an exception if it is). This check performs a linear search
through all Proxies in the PersistenceContext. Since we're setting the session to
null, do we really need to do this expensive linear search?
I propose we not perform the linear search if the session being set on the
AbstractLazyInitializer is null.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira