hi, ive been working on a ejb3 application that need to cache as much as possible. queries
are cached manually by storing the result (only the primary keys) in jbosscache (the same
cache as the entity beans).
when that query is called again we fetch the id's from cache and for each id we just
call EntityManager.find(Class, id), most of the objects are loaded into the cache at this
point so there are zero db calls. this works very well, but it doesnt perform as good as
we hoped.
a resultset of 1000 objects take 200ms (when we call EntityManager.find(...) for each id),
but if we call the cache directly for each entry it takes about 20ms in total (but we
really do not want to do this).
if we do the query "normally" (without any caching) it performs better than if
we call EntityManager.find(...) for each entry, about 50-80ms.
are there any way to speed up the EntityManager.find(..) call?
IsolationLevel is none and CacheMode is local.
i understand that the easy solution is to not cache queries, but if we dont the database
will crumble down in notime and i would rather not use the hibernate query cache since
that would eat up cachememory very fast (since we also have entity cache).
any input would be highly appreciated..
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4000949#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...