Merge pull request #9586 from influxdata/bj-interrupt-show-series

Allow SHOW SERIES kill
pull/9591/head
Ben Johnson 2018-03-15 14:35:46 -06:00 committed by GitHub
commit 5bd29a03de
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 2 deletions

View File

@ -752,7 +752,7 @@ func (itr *seriesPointIterator) readSeriesKeys(name []byte) error {
// Slurp all series keys.
itr.keys = itr.keys[:0]
for {
for i := 0; ; i++ {
elem, err := sitr.Next()
if err != nil {
return err
@ -760,6 +760,14 @@ func (itr *seriesPointIterator) readSeriesKeys(name []byte) error {
break
}
// Periodically check for interrupt.
if i&0xFF == 0xFF {
select {
case <-itr.opt.InterruptCh:
return itr.Close()
}
}
key := itr.indexSet.SeriesFile.SeriesKey(elem.SeriesID)
if len(key) == 0 {
continue

View File

@ -811,7 +811,13 @@ func (s *Shard) CreateIterator(ctx context.Context, m *influxql.Measurement, opt
return nil, err
}
indexSet := IndexSet{Indexes: []Index{index}, SeriesFile: s.sfile}
return NewSeriesPointIterator(indexSet, opt)
itr, err := NewSeriesPointIterator(indexSet, opt)
if err != nil {
return nil, err
}
return query.NewInterruptIterator(itr, opt.InterruptCh), nil
case "_tagKeys":
return NewTagKeysIterator(s, opt)
}