[
https://jira.jboss.org/jira/browse/ISPN-322?page=com.atlassian.jira.plugi...
]
Manik Surtani commented on ISPN-322:
------------------------------------
Combined by making insertBucket() dispatch to updateBucket() in the BucketBasedCacheStore.
Updated javadocs to clearly document this behaviour as well, instructing that if
updateBucket() implementations cannot lazily create non-existent buckets, then
insertBucket() needs to be overridden as well (as in the case of the
JdbcBinaryCacheStore). Other implementations can simply ignore insertBucket() and just
implement updateBucket().
BucketBasedCacheStore - insertBucket and updateBucket should be
combined
------------------------------------------------------------------------
Key: ISPN-322
URL:
https://jira.jboss.org/jira/browse/ISPN-322
Project: Infinispan
Issue Type: Task
Components: Loaders and Stores
Affects Versions: 4.0.0.Final
Reporter: Manik Surtani
Assignee: Mircea Markus
Fix For: 4.1.0.ALPHA1, 4.1.0.Final
insertBucket and updateBucket in BucketBasedCacheStore should be combined into 1 method
(storeBucket?). Javadocs should be updated accordingly, to reflect that the bucket is
persisted, and if it doesn't already exist, it will be created anew.
2 impls of this (FileCacheStore and CloudCacheStore) already delegate updateBucket()
--> insertBucket(). The only impl that treats these 2 calls differently is the
JdbcBinaryCacheStore. But this is incorrect since JdbcBinaryCacheStore.insertBucket()
throws an exception if the row already exists. And this can happen if, for example, the
cache store is in async mode. Or if it is shared.
So the JdbcBinaryCacheStore would first have to be fixed, to use SQL such as
"INSERT... OR UPDATE", e.g.:
http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
--
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