[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-3357) session.clear() takes too long

Tim Downey (JIRA) noreply at atlassian.com
Thu Sep 18 14:09:04 EDT 2008


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-3357?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=31236#action_31236 ] 

Tim Downey commented on HHH-3357:
---------------------------------

A simpler change may be to simply change line 115 of AbstractLazyInitializer from

if (isConnectedToSession()) {

to

if (s != null && isConnectedToSession()) {

Is there any downside to skipping the check if the new session is null?  It seems harmless enough and definitely provides a major bump in performance if the session has a large number of objects within it.

> 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.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the hibernate-issues mailing list