Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-3261

AffinityKey is not stored in the metadata cache

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 1.5.0.final
    • 1.7
    • cache

    Description

      Presently we don't register predefined and system classes in metadata cache which can lead to significant performance drops when these types used as keys.

      As an example we have AffinityKey class. It's not registered in the metadata cache and as a result client nodes don't update their CacheObjectBinaryProcessorImpl.clientMetaDataCache. After that when a client node needs to get AffinityKey metadata using CacheObjectBinaryProcessorImpl.metadata(typeId) it will always call metadata cache and this is a bottleneck. The drop can be significant because this method is called from methods like GridAffinityProcessor.mapKeyToPrimaryAndBackups.

      In attach you can find a simple benchmark that shows how slower a result if AffinityKey is used.

      As a solution we can register AffinityKey and other system and predefined classes in the metadata cache.

      Attachments

        1. Ignite-MarshallBenchmark.zip
          8 kB
          Denis A. Magda

        Activity

          People

            Unassigned Unassigned
            dmagda Denis A. Magda
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: