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

Can we avoid doing recovery when collections are first created?

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 6.3
    • Component/s: None
    • Security Level: Public (Default Security Level. Issues are Public)
    • Labels:
      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

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

                Dates

                • Created:
                  Updated:
                  Resolved: