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

Message ordering of Get and Invalidation can cause L1 to be inconsistent

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 6.0.0.Alpha2, 6.0.0.CR1
    • 5.2.6.Final
    • None
    • None

    Description

      This is based off of discussion here: https://issues.jboss.org/browse/ISPN-2990?focusedCommentId=12779491&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-12779491

      This can occur with a synchronous cache.

      1. A reads k1. This is an OOB call.
      2. B processes the read message and sends back the response
      3. C updates k1, at this stage B sends the invalidation message to A (OOB call)
      4. A processes(ignores) the invalidation message
      5. A puts the stale value sent at 2 in L1

      The OOB portions don't actually matter that they are OOB as even if B's messages were ordered it sill could process the get and update in a different order since they originate from different nodes.

      The initial thought is to solve this with some type of tombstone to sygnal the removal of the L1 cache, but this also still doesn't catch the problem if A did not have key k1 in it's L1 cache to receive an invalidation message.

      Attachments

        Activity

          People

            wburns@redhat.com Will Burns
            wburns@redhat.com Will Burns
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: