diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-10-25 19:42:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-25 19:42:41 +0200 |
commit | 37d050d026ae1cdbcb1ba2dd4848107fa8d6fd61 (patch) | |
tree | 3cb25d04708ac3c2158c17ed0117bf883a8caf9d /storage/src/vespa/storage/storageserver/mergethrottler.h | |
parent | cb6a8b7ccc971f4264fd3e0cb1917ba94e75552f (diff) | |
parent | 5b943fc1a120a2548cad10568fbf7e8819cbad3e (diff) |
Merge pull request #19725 from vespa-engine/vekterli/prioritize-forwarded-merges-in-throttler-queuev7.489.25
Prioritize forwarded merges in MergeThrottler queue
Diffstat (limited to 'storage/src/vespa/storage/storageserver/mergethrottler.h')
-rw-r--r-- | storage/src/vespa/storage/storageserver/mergethrottler.h | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/storage/src/vespa/storage/storageserver/mergethrottler.h b/storage/src/vespa/storage/storageserver/mergethrottler.h index 997477a4b70..da301172a3a 100644 --- a/storage/src/vespa/storage/storageserver/mergethrottler.h +++ b/storage/src/vespa/storage/storageserver/mergethrottler.h @@ -80,21 +80,25 @@ private: MessageType _msg; metrics::MetricTimer _startTimer; uint64_t _sequence; - - StablePriorityOrderingWrapper(const MessageType& msg, uint64_t sequence) - : _msg(msg), _startTimer(), _sequence(sequence) + bool _is_forwarded_merge; + + StablePriorityOrderingWrapper(const MessageType& msg, + uint64_t sequence, + bool is_forwarded_merge) noexcept + : _msg(msg), + _startTimer(), + _sequence(sequence), + _is_forwarded_merge(is_forwarded_merge) { } - bool operator==(const StablePriorityOrderingWrapper& other) const { - return (*_msg == *other._msg - && _sequence == other._sequence); - } - - bool operator<(const StablePriorityOrderingWrapper& other) const { + bool operator<(const StablePriorityOrderingWrapper& other) const noexcept { if (_msg->getPriority() < other._msg->getPriority()) { return true; } + if (_is_forwarded_merge != other._is_forwarded_merge) { + return _is_forwarded_merge; // Forwarded merges sort before non-forwarded merges. + } return (_sequence < other._sequence); } }; |