code: func (it *copIterator) open(ctx context.Context) {
  	taskCh := make(chan *copTask, 1)
  	it.wg.Add(it.concurrency)
  	// Start it.concurrency number of workers to handle cop requests.
  	for i := 0; i < it.concurrency; i++ {
  		worker := &copIteratorWorker{
  			taskCh:   taskCh,
  			wg:       &it.wg,
  			store:    it.store,
  			req:      it.req,
  			respChan: it.respChan,
  			finishCh: it.finishCh,
  			vars:     it.vars,
  
  			memTracker: it.memTracker,
  		}
  		go worker.run(ctx)
  	}
  	taskSender := &copIteratorTaskSender{
  		taskCh:   taskCh,
  		wg:       &it.wg,
  		tasks:    it.tasks,
  		finishCh: it.finishCh,
  	}
  	taskSender.respChan = it.respChan
  	go taskSender.run()
  }
docs: // open starts workers and sender goroutines.