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

Can we avoid doing recovery when collections are first created?

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 6.3
    • None
    • None

    Description

      When a core starts up as part of a collection, and it's not a shard leader, it goes into recovery, part of which involves a 7 second wait (set in SOLR-7141) to ensure that updates being sent from the leader don't get missed in between buffering and replication.

      This has the unfortunate side-effect of adding a 7-second pause to collection creation whenever the replication factor is 2 or more, which slows down tests massively - for example, DeleteReplicaTest takes about 54 seconds to execute on my machine, 28 seconds of which is just pauses - over 50% of execution time. It's not actually possible to add documents to a collection before the creation request has returned, so the recovery stage here isn't strictly speaking necessary.

      I think we could try adding a parameter to a CoreAdmin create request that says the core is being created as part of a new collection, so it doesn't need to try and recover from it's leader when it starts up. Does this sound sensible, or am I missing something here?

      Attachments

        1. SOLR-9566.patch
          15 kB
          Alan Woodward

        Issue Links

          Activity

            People

              romseygeek Alan Woodward
              romseygeek Alan Woodward
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: