[infinispan-issues] [JBoss JIRA] (ISPN-3953) JPACacheStore should not load all entities in memory
Sanne Grinovero (JIRA)
issues at jboss.org
Thu Jul 17 13:06:30 EDT 2014
[ https://issues.jboss.org/browse/ISPN-3953?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12986007#comment-12986007 ]
Sanne Grinovero commented on ISPN-3953:
---------------------------------------
Note that the window models which have been applied don't clear the Session.
I've opened new issues: ISPN-4538, ISPN-4536
> JPACacheStore should not load all entities in memory
> ----------------------------------------------------
>
> Key: ISPN-3953
> URL: https://issues.jboss.org/browse/ISPN-3953
> Project: Infinispan
> Issue Type: Enhancement
> Security Level: Public(Everyone can see)
> Components: Loaders and Stores
> Reporter: Emmanuel Bernard
> Assignee: Radim Vansa
> Labels: 630, 630betablocker
> Fix For: 7.0.0.Alpha3
>
>
> Today several methods use getResultList() and load either all keys or all entities for a given entity type in- memory at the same time.
> This will likely blow up for big tables.
> There are two solutions:
> ## Use Hibernate's specific features
> Hibernate ORM has a session.scroll() method that offers a FORWARD_ONLY scrollable result set. You can then load data and regularly (every 100?) clear the session before hitting the next result. This will diminish greatly the memory pressure.
> ## Use a window model
> get the number of entities in the table select count(*)
> Then use setFirstResult / setMaxResults to navigate the data with a sliding window and clear the session every time you move the window.
> This won't be as efficient as Hibernate ORM's specific approach but will do the work except on database that don't support the ability to start the results at the nth element. Look up Hibernate dialects for more info.
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
More information about the infinispan-issues
mailing list