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

Invalidation commands should not load the previous value from the store

    XMLWordPrintable

Details

    Description

      CacheLoaderInterceptor.visitInvalidateCommand() loads the previous value from the store, just in case there is a CacheEntryInvalidated listener that needs the previous value. This makes invalidation mode with a shared store very costly: for every write, every node receives an invalidation command, every node reads the value from the store, and then discards it.

      But InvalidateCommand only removes entries from memory, it never removes entry from stores (either shared or private). If we don't load the previous value in the data container, there is nothing for the InvalidateCommand to do. No invalidated entry means no listener notifications, so we don't need to load the previous value or to change the behaviour of CacheEntryInvalidatedEvent.

      Attachments

        Issue Links

          Activity

            People

              dberinde@redhat.com Dan Berindei
              dberinde@redhat.com Dan Berindei
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: