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

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

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 4.0, 4.1, 4.2
    • 4.2.1, 4.3, 6.0
    • None
    • 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
          Chris M. Hostetter
        2. SOLR-4589.patch
          21 kB
          Chris M. Hostetter
        3. SOLR-4589.patch
          21 kB
          Chris M. Hostetter
        4. SOLR-4589.patch
          18 kB
          Chris M. Hostetter
        5. SOLR-4589.patch
          18 kB
          Chris M. Hostetter
        6. SOLR-4589.patch
          9 kB
          Chris M. Hostetter
        7. test.out__3.6.1_mmap_lazy.txt
          0.6 kB
          Chris M. Hostetter
        8. test.out__3.6.1_mmap_nolazy.txt
          0.4 kB
          Chris M. Hostetter
        9. test.out__3.6.1_nio_lazy.txt
          0.6 kB
          Chris M. Hostetter
        10. test.out__3.6.1_nio_nolazy.txt
          0.6 kB
          Chris M. Hostetter
        11. test.out__4.0.0_mmap_lazy.txt
          0.4 kB
          Chris M. Hostetter
        12. test.out__4.0.0_mmap_nolazy.txt
          0.4 kB
          Chris M. Hostetter
        13. test.out__4.0.0_nio_lazy.txt
          0.4 kB
          Chris M. Hostetter
        14. test.out__4.0.0_nio_nolazy.txt
          0.4 kB
          Chris M. Hostetter
        15. test.out__4.2.0_mmap_lazy.txt
          0.4 kB
          Chris M. Hostetter
        16. test.out__4.2.0_mmap_nolazy.txt
          0.4 kB
          Chris M. Hostetter
        17. test.out__4.2.0_nio_lazy.txt
          0.4 kB
          Chris M. Hostetter
        18. test.out__4.2.0_nio_nolazy.txt
          0.4 kB
          Chris M. Hostetter
        19. test.sh
          2 kB
          Chris M. Hostetter
        20. test-just-queries.out__4.0.0_mmap_lazy_using36index.txt
          0.2 kB
          Chris M. Hostetter
        21. test-just-queries.sh
          1 kB
          Chris M. Hostetter

        Activity

          People

            hossman Chris M. Hostetter
            hossman Chris M. Hostetter
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: