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

TermsComponent sharded and terms.sort=index performance

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

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 7.7
    • 8.1, 9.0
    • None
    • Linux 64bit debian

      20-node cluster

    Description

      When the TermsComponet distributes across all shards, all (terms.limit=-1) are returned.

      This ought not to be needed when using terms.sort=index.

      When using terms.lower=a in small test base (400k entries) it took 8.5-11.5s to do a

      /terms?terms.fl=register&terms.sort=index&terms.lower=a I did not try it on production data (10x)

      I do get the reason for getting all terms when sorting by count, however when sorting by index, no more than the terms.limit number rows is required from any shard. Most likely some will get discarded due to presence in more than one shard. Given no term.min/maxcount (which definetely throws a spanner in the works).

       

      I've attached what I think would do the trick.

      I haven't actually tested the patch (it compiles, however some other files in the checkout I have doesn't: ant compile, javac: "error: cannot find symbol")

       

      Might be somewhat related issue (SOLR-2908). I didn't quite get the more subtle information in it.

       

       

      Tested by

      • applying patch to 7.7.1 (the one we use in production)
      • start up on spare server (during off house on test system)
      • add a replica from a collection (so that it'll serve requests)
      • request /terms?terms.fl=phrase.title&terms.sort=index&terms.lower=a from the instance ~30 ms
      • request the same from another unpatched instance ~17k ms
      • both returned same result
      • added terms.mincount=2 to the quick request. failed with out of memory
      • restarted sever with more memory (.5g -> 8g)
      • request completed in ~18k ms

       

      I don't see how I'm supposed to unit test the functionality given it requires a cloud instance and sufficient data to give measurable difference with or without extra request arguments.

       

      Attachments

        1. SOLR-13337.patch
          0.1 kB
          Morten Bøgeskov
        2. SOLR-13337.patch
          2 kB
          Mikhail Khludnev
        3. SOLR-13337.patch
          2 kB
          Morten Bøgeskov
        4. SOLR-13337.patch
          4 kB
          Morten Bøgeskov
        5. SOLR-13337.patch
          8 kB
          Mikhail Khludnev
        6. SOLR-13337.patch
          9 kB
          Mikhail Khludnev
        7. screenshot-1.png
          27 kB
          Mikhail Khludnev
        8. cvrg.jpg
          51 kB
          Mikhail Khludnev
        9. 0001-SOLR-13337-Avoid-requesting-unneeded-terms-from-shar.patch
          2 kB
          Morten Bøgeskov

        Issue Links

        Activity

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

          People

            mkhl Mikhail Khludnev
            bogeskov Morten Bøgeskov
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment