Optimize consumer messages sequences for multiple subjects

If consumer with multiple subjects encountered a sequnece
of messages from the same subject, it tried to load messages
from other subjects in some cases.
This checks for that scenario and optimizes it by early returning.

Signed-off-by: Tomasz Pietrek <tomasz@nats.io>
This commit is contained in:
Tomasz Pietrek
2023-05-03 22:10:09 +02:00
parent e7b01c4154
commit 7c1c4ea5fb

View File

@@ -3295,6 +3295,11 @@ func (o *consumer) getNextMsg() (*jsPubMsg, uint64, error) {
o.updateSkipped(uint64(filter.currentSeq))
}
}
// If we're sure that this filter has continuous sequence of messages, skip looking up other filters.
if nextSeq == sseq && err != ErrStoreEOF {
break
}
}
}