code: func (pool *LoadBalancedPool) GetInstancePool(instanceId int) (*SimplePool, error) {
  	pool.lock.RLock()
  	defer pool.lock.RUnlock()
  	for _, instancePool := range pool.instanceList {
  		if instancePool.instanceId == instanceId {
  			return &instancePool.SimplePool, nil
  		}
  	}
  	return nil, errors.Newf("InstanceId: %v not found in the pool", instanceId)
  }
docs: // Returns a SimplePool for given instanceId, or an error if it does not exist.
  // TODO(zviad): right now this scans all instances, thus if there are a lot of
  // instances per partition it can become very slow. If it becomes a problem, fix it!