[infinispan-issues] [JBoss JIRA] Commented: (ISPN-686) JdbcStringBasedCacheStore loads previous data from store before an insert

Trustin Lee (JIRA) jira-events at lists.jboss.org
Wed Oct 6 04:53:40 EDT 2010


    [ https://jira.jboss.org/browse/ISPN-686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12555495#action_12555495 ] 

Trustin Lee commented on ISPN-686:
----------------------------------

Infinispan already has an abstraction called TableManipulation which is basically a factory of SQL strings.  I think we can add TableManipulation.getInsertOrUpdateRowSql().  The default implementation could return null (i.e. no proprietary extension), and a user could override it.

Another possible optimization is to attempt an UPDATE first instead of SELECT.  If the number of updated rows is 0, we can execute an INSERT.  Assuming UPDATE is more common than INSERT, we save one statement.

WDYT?  (Just making sure because I'm not sure I'm so familiar with the codebase yet :)

> JdbcStringBasedCacheStore loads previous data from store before an insert
> -------------------------------------------------------------------------
>
>                 Key: ISPN-686
>                 URL: https://jira.jboss.org/browse/ISPN-686
>             Project: Infinispan
>          Issue Type: Bug
>          Components: Loaders and Stores
>    Affects Versions: 4.0.0.Final, 4.1.0.Final, 4.2.0.ALPHA2
>            Reporter: Sanne Grinovero
>            Assignee: Trustin Lee
>             Fix For: 4.2.0.BETA1, 4.2.0.Final, 5.0.0.Final
>
>
> The JdbcStringBasedCacheStore implementation loads the previous data on an insert to find out if it should generate an UPDATE or INSERT statement, while it would perform much better to just verify if the primary key exists.
> On top of this, some databases provide ways to avoid the need to check at all, like MySQL's " INSERT ... ON DUPLICATE KEY UPDATE"
> [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/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the infinispan-issues mailing list