Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-12097

Invalidation Cache with a shared store doesn't work properly after new SPI changes

    XMLWordPrintable

Details

    Description

      There seems to be something amiss with the new NonBlockingStore changes.  When a transactional invalidation cache is used with a shared cache store, I've observed the entries published to the removePublisher of the NonBlockStore.batch(...) which should have targeted the writePublisher.  This seems to happen when a batch only contains writes, but no removes.

      See the attached test to reproduce the issue, which executes two simple cache operations against a transactional vs non-transactional cache using a shared write-through store.  The transactional version fails due to unexpected removals triggered by the batch(...) method (which, in the case of the JDBC store delegates to the deleteBatch(...) and bulkUpdate(...) methods.  TRACE logging indicates that entries are unexpectedly published to the removePublisher of batch(...) when transactions are enabled causing entries to be removed unexpectedly from the store (as the result of a Cache.put(...)).  When tx are disabled, the batch(...) method is, of course, not in play, and everything works correctly via the individual write/delete methods.

      Attachments

        Activity

          People

            wburns@redhat.com Will Burns
            pferraro@redhat.com Paul Ferraro
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: