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

4.x + enableLazyFieldLoading + large multivalued fields + varying fl = pathological CPU load & response time

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 4.0, 4.1, 4.2
    • Fix Version/s: 4.2.1, 4.3, 6.0
    • Component/s: None
    • Labels:
      None

      Description

      Following up on a user report of exterme CPU usage in 4.1, I've discovered that the following combination of factors can result in extreme CPU usage and excessively HTTP response times...

      • Solr 4.x (tested 3.6.1, 4.0.0, and 4.2.0)
      • enableLazyFieldLoading == true (included in example solrconfig.xml)
      • documents with a large number of values in multivalued fields (eg: tested ~10-15K values)
      • multiple requests returning the same doc with different "fl" lists

      I haven't dug into the route cause yet, but the essential observations is: if lazyloading is used in 4.x, then once a document has been fetched with an initial fl list X, subsequent requests for that document using a differnet fl list Y can be many orders of magnitute slower (while pegging the CPU) – even if those same requests using fl Y uncached (or w/o lazy laoding) would be extremely fast.

        Attachments

        1. SOLR-4589.patch
          20 kB
          Hoss Man
        2. SOLR-4589.patch
          21 kB
          Hoss Man
        3. SOLR-4589.patch
          21 kB
          Hoss Man
        4. SOLR-4589.patch
          18 kB
          Hoss Man
        5. SOLR-4589.patch
          18 kB
          Hoss Man
        6. SOLR-4589.patch
          9 kB
          Hoss Man
        7. test-just-queries.sh
          1 kB
          Hoss Man
        8. test-just-queries.out__4.0.0_mmap_lazy_using36index.txt
          0.2 kB
          Hoss Man
        9. test.sh
          2 kB
          Hoss Man
        10. test.out__4.2.0_nio_nolazy.txt
          0.4 kB
          Hoss Man
        11. test.out__4.2.0_nio_lazy.txt
          0.4 kB
          Hoss Man
        12. test.out__4.2.0_mmap_nolazy.txt
          0.4 kB
          Hoss Man
        13. test.out__4.2.0_mmap_lazy.txt
          0.4 kB
          Hoss Man
        14. test.out__4.0.0_nio_nolazy.txt
          0.4 kB
          Hoss Man
        15. test.out__4.0.0_nio_lazy.txt
          0.4 kB
          Hoss Man
        16. test.out__4.0.0_mmap_nolazy.txt
          0.4 kB
          Hoss Man
        17. test.out__4.0.0_mmap_lazy.txt
          0.4 kB
          Hoss Man
        18. test.out__3.6.1_nio_nolazy.txt
          0.6 kB
          Hoss Man
        19. test.out__3.6.1_nio_lazy.txt
          0.6 kB
          Hoss Man
        20. test.out__3.6.1_mmap_nolazy.txt
          0.4 kB
          Hoss Man
        21. test.out__3.6.1_mmap_lazy.txt
          0.6 kB
          Hoss Man

          Activity

            People

            • Assignee:
              hossman Hoss Man
              Reporter:
              hossman Hoss Man
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: