Improve performance with "Cache.setData" call
---------------------------------------------
Key: JBCACHE-1442
URL:
https://jira.jboss.org/jira/browse/JBCACHE-1442
Project: JBoss Cache
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Reporter: Elias Ross
Assignee: Manik Surtani
For a configuration that uses an async cache loader in 3.0, performance of "put(Map
m)" may be unexpectedly slow. This is because put(Map) is a merge call and always
results in a load. Imagine if put(Map) is being done over the network, e.g. JDBC database.
This is not want users would expect. And there's no alternative to this in the current
API set. (The work-around is to have cache calls done using a thread pool...)
Cache.getNode(X).replaceAll() won't work as it results in a load, and/or a null
pointer exception if the node is not found.
The old TreeCache from 1.4 had a "put erase" option. I suggest we create a
setData() method that does not do a merge.
Changes are attached, with some new tests, but I'm not sure the implementation is
really complete. The tests set "goals" for the proper behavior of the cache
loader.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira