[hibernate-issues] [Hibernate-JIRA] Created: (HHH-2175) L2 Cache performance is very very bad when writing other kinds of objects in the same transaction
Sami Dalouche (JIRA)
noreply at atlassian.com
Tue Oct 24 16:53:04 EDT 2006
L2 Cache performance is very very bad when writing other kinds of objects in the same transaction
-------------------------------------------------------------------------------------------------
Key: HHH-2175
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2175
Project: Hibernate3
Type: Improvement
Components: core
Versions: 3.2.0.ga
Environment: Hibernate Entity Manager 3.2.0 + Annotations + Core
Reporter: Sami Dalouche
Hibernate L2 Cache performance is very slow when writing objects in the same transaction.
For instance. Let's say we have 2 completly unrelated classes A and B
let's say A never changes, and we write tons of instances of B to the database. Both A and B are managed by the cache, but into differet cache regions (with different Ehcache configurations).
So, let's consider a simple example like :
loop 1:
for(int i = 0 ; i < 10000 ; i++){
new A();
}
and loop2:
for(int i = 0 ; i < 10000 ; i++){
aDao.findAByKey("key");
}
Since the L2 cache + Query cache is activatedon a + findAByKey, loop2's performance is comparable to loop's 1 one. It's pretty much the same, so everything is fine, so far. Let's call X the time taken by loop1 or loop2, that we consider equal.
Now, let's consider loop3 and loop4:
loop 3:
for(int i = 0 ; i < 10000 ; i++){
new A();
bDao.save(new B());
}
and loop4:
for(int i = 0 ; i < 10000 ; i++){
aDao.findAByKey("key");
bDao.save(new B());
}
So, now, let's consider that saving bDao.save(new B()) takes Y seconds for 10,000 iterations.
You would expect loop3 and loop4 to have the same performance, roughly , X + Y, right ?
Well, actually, loop3 takes X + Y.
But loop4 takes around 20 * (X + Y) !!!!!!! (on my machine, so it can be slighly different). But you see the point : there is a HUGE difference of performance.
I am sure there are design reasons for this, that's why I set this bug as an enhancement.. So, 2 things :
* either it is possible to solve this issue, and it would be nice to correct it
* either it is not possible to solve this issue, and it would be nice to add a section in the reference manual, explaining why hibernate behaves that way.
Regards,
Sami Dalouche
--
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