From 7c1c4ea5fbaaf771de35891ab14754273bec3822 Mon Sep 17 00:00:00 2001 From: Tomasz Pietrek Date: Wed, 3 May 2023 22:10:09 +0200 Subject: [PATCH] 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 --- server/consumer.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/server/consumer.go b/server/consumer.go index 65e00511..0393c50a 100644 --- a/server/consumer.go +++ b/server/consumer.go @@ -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 + } } }