Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-7355

Java 8: ConcurrentLinkedHashMap -> Caffeine

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Task
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • None
    • 6.0
    • None
    • None

    Description

      When Solr transitions to requiring Java 8, please upgrade to Caffeine. The performance should be relatively the same. The per-instance memory usage should be smaller and Solr may decide to opt-in to use some of the additional features. The only drawback is that the jar size is larger due to code generation, though that may be trimmed over time and usually is not a concern for server-side applications.

      ConcurrentLinkedHashMap changes will continue to be minimal, even more so now, and driven by requests from Java 6 users unable to upgrade. Caffeine is ideally the upgrade path for Guava cache users too, which due to Android cannot be significantly modified.

      Caffeine: https://github.com/ben-manes/caffeine
      Benchmarks: https://github.com/ben-manes/caffeine/wiki/Benchmarks
      ConcurrentLinkedHashMap: https://code.google.com/p/concurrentlinkedhashmap

      Attachments

        1. SOLR-7355.patch
          33 kB
          Shawn Heisey
        2. SOLR-7355.patch
          8 kB
          Shawn Heisey
        3. SOLR-7355.patch
          20 kB
          Shawn Heisey
        4. SOLR-7355.patch
          32 kB
          Ben Manes

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            elyograg Shawn Heisey
            ben.manes Ben Manes
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment