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

L1 entry added by ST when already invalidated

    XMLWordPrintable

Details

    Description

      Non-transactional cache with L1 enabled. Node A is losing ownership of an entry, the entry is not removed during ST but is going to L1.

      1. ST builds the invalidation command, EntryWrapping interceptor starts committing all the entries
      2. Write on primary owner (B) occurs
      3. A gets the InvalidateL1Command, removes the ImmortalCacheEntry from data container (as it does not own the entry anymore)
      4. The ST invalidation command commits the MortalCacheEntry with old value, storing it into the data container.

      Result: Outdated value is in L1 cache.

      As the entry is not locked during the ST, it can be committed as MortalCacheEntry only if it was not changed (removed and possibly then cached again with different value).
      (I understand that this wouldn't be easy to implement as the check is not to be executed in perform, but during the actual commit - and atomically in the container.)

      Attachments

        Activity

          People

            wburns@redhat.com Will Burns
            rvansa1@redhat.com Radim Vansa (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: