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

Micro-optimizations for read operations

    Details

    • Type: Task
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 9.0.0.Alpha2
    • Fix Version/s: 9.0.0.Beta2
    • Component/s: Core
    • Labels:
      None

      Description

      • L1 entries are written to the data container by L1TxInterceptor/L1NonTxInterceptor directly, so there is no reason to commit the context entries in EntryWrappingInterceptor or to clear the locks in the locking interceptors.
      • ClearCommands can no longer be wrapped in PrepareCommands, so we can stop the state transfer in EntryWrappingInterceptor.visitClearCommand() instead of checking the type for each command.
      • In transactional caches, a read operation without an explicit transaction triggers two queries for the current transaction to the transaction manager, which usually means 2 thread-local lookups.
      • IsMarshallerInterceptor shouldn't do anything unless there is an asynchronous store
      • Transactional remote get commands use NonTxInvocationInterceptor instead of SingleKeyNonTxInterceptor.
      • Configuration attributes should be cached, as reading them requires accessing multiple instances + a cast in Attribute.get()

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  dan.berindei Dan Berindei
                  Reporter:
                  dan.berindei Dan Berindei
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  1 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: