Derek Collison
4175e4ee9c
Merge branch 'main' into dev
2023-05-06 09:55:34 -07:00
Derek Collison
80db7a22ab
Optimizations for large single hub account leafnode fleets.
...
Added a leafnode lock to allow better traversal without copying of large leafnodes in a single hub account.
Signed-off-by: Derek Collison <derek@nats.io >
2023-05-05 13:14:49 -07:00
Tomasz Pietrek
7c1c4ea5fb
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 >
2023-05-04 16:02:19 +02:00
Derek Collison
0321eb6484
Merge branch 'main' into dev
2023-04-29 19:52:57 -07:00
Derek Collison
db972048ce
Detect when we are shutting down or if a consumer is already closed when removing a stream.
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-04-29 11:18:10 -07:00
Derek Collison
fac5658966
If we fail to create a consumer, make sure to clean up any raft nodes in meta layer and to shutdown the consumer if created but we encountered an error.
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-04-29 08:15:33 -07:00
Derek Collison
d573b78aee
Merge branch 'main' into dev
2023-04-26 18:42:31 -07:00
Derek Collison
7f06d6f5a7
When Jsz() was asked for consumer details, would report incorrect data if not a consumer leader.
...
This is due to the way state is maintained for leaders vs followers for consumers.
Signed-off-by: Derek Collison <derek@nats.io >
2023-04-26 15:03:15 -07:00
Derek Collison
1de9a1cf3b
Merge branch 'main' into dev
2023-04-21 14:09:35 -07:00
Derek Collison
da9a17fd68
Spelling
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-04-21 12:40:19 -07:00
Derek Collison
8b7c2d12aa
Run a check for ack floor drift when taking over as a leader and the ack go routine is spun up.
...
Also periodically check. If all normal will be very cheap.
Signed-off-by: Derek Collison <derek@nats.io >
2023-04-21 11:59:35 -07:00
Neil Twigg
57d888eec4
Use AVL tree for consumer redeliver map
...
Signed-off-by: Neil Twigg <neil@nats.io >
2023-04-18 15:53:44 +01:00
Derek Collison
a319d24345
Merge branch 'main' into dev
2023-04-13 21:03:05 -07:00
Tomasz Pietrek
692f384f2d
Fix consumer reply subject escaping
...
If the Consumer had a name containing `%`, it could result in
reply subject failing to format with `fmt.Sprintf`, as the `%`
was not properly escaped with `%%`.
Signed-off-by: Tomasz Pietrek <tomasz@nats.io >
2023-04-12 09:22:08 +02:00
Derek Collison
dfeac4a214
Merge branch 'main' into dev
2023-04-09 19:31:01 -07:00
Derek Collison
c6b2a97ef4
Use entry pool
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-04-08 19:58:43 -07:00
Derek Collison
c5e19e19e7
Merge branch 'main' into dev
2023-04-03 21:22:53 -07:00
Derek Collison
ebe4f8957f
Spelling based on review feedback
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-04-03 21:08:59 -07:00
Derek Collison
dcbefd5cc4
We can receive these on push consumers, so error if we do
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-04-03 21:07:08 -07:00
Derek Collison
07b34f707f
Make sure to never process next message requests inline
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-04-03 20:50:01 -07:00
Derek Collison
b9e7b58f5c
Merge branch 'main' into dev
2023-04-02 18:58:54 -07:00
Derek Collison
e6447c982a
Protect against concurrent creation of streams and consumers.
...
Also make sure we have exited monotoring routines when doing resets for both streams and consumers.
Signed-off-by: Derek Collison <derek@nats.io >
2023-04-02 14:29:52 -07:00
Derek Collison
48a5d270b2
Merge branch 'main' into dev
2023-04-02 04:23:52 -07:00
Derek Collison
b752b8b30d
Snapshot on clean shutdown if needed or interest based retention
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-04-02 03:53:03 -07:00
Derek Collison
ac96d75c9c
Fix bug in needAck ( #4008 )
...
needAck has reverse logic for checking single subject-single filter
scenario.
Signed-off-by: Tomasz Pietrek <tomasz@nats.io >
2023-03-31 15:56:33 -07:00
Tomasz Pietrek
93c49c354e
Fix bug in needAck
...
needAck has reverse logic for checking single subject-single filter
scenario.
Signed-off-by: Tomasz Pietrek <tomasz@nats.io >
2023-03-31 23:55:50 +02:00
Derek Collison
d057889b13
Merge branch 'main' into dev
2023-03-31 11:36:35 -07:00
Derek Collison
ad5bb366a0
Updates to preacks when multiple consumers are present but mutually exlusive (filtered).
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-03-31 10:43:28 -07:00
Derek Collison
625ffa8685
Merge branch 'main' into dev
2023-03-29 17:19:45 -07:00
Derek Collison
9a714e7d7d
Update based on review feedback
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-03-29 15:47:54 -07:00
Derek Collison
c4da37ecc7
Make sure consumer is valid and state was returned
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-03-29 12:44:01 -07:00
Derek Collison
e516c47a4b
Improvements to consumers attached to an interest retention stream.
...
1. Do not process an ack if we are closed.
2. When checking for needing an ack for a given consumer, hold lock entire time.
3. During recovery and restarts we check if we need to replay acks to the parent stream.
Signed-off-by: Derek Collison <derek@nats.io >
2023-03-29 12:43:49 -07:00
Derek Collison
80d0adede4
Merge branch 'main' into dev
2023-03-15 20:26:13 -07:00
Derek Collison
5bb6f167b9
Make sure to cleanup messages on a follower consumer for an interest based stream when the consumer leader sends a state snapshot.
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-03-15 20:11:16 -07:00
Derek Collison
7d0f011620
Merge branch 'main' into dev
2023-03-14 06:56:00 -07:00
Derek Collison
5a1878b015
Fix for workqueue stream scaling up and not removing acked messages.
...
Make sure when scaling up streams that are workqueue or interest policy that consumers scale as well.
Signed-off-by: Derek Collison <derek@nats.io >
2023-03-13 17:13:49 -07:00
Derek Collison
9f69d8734f
Merge branch 'main' into dev
2023-03-04 08:42:10 -06:00
Tomasz Pietrek
df282a221c
Fix Pull Consumer not sending request timeout
...
Server did check for timeouts in `processWaiting`,
but that needs to be also checked in `nextWaiting` in case of
tight timings, as `nextWaiting` can remove Pull Request based on
timeouts too.
Signed-off-by: Tomasz Pietrek <tomasz@nats.io >
2023-03-03 14:49:04 +01:00
Derek Collison
b46f0906ab
Fixup for consumer getNextMsg
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-02-28 15:17:58 -08:00
Derek Collison
7bd7cda021
Merge branch 'main' into dev
2023-02-28 15:17:24 -08:00
Derek Collison
724160ebac
Fix flapping tests
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-02-28 14:30:23 -08:00
Derek Collison
24cb570646
Do not lock on stream name for consumer write state error
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-02-28 13:24:18 -08:00
Derek Collison
d85bec2007
Do not block in place on warning, and only warn if consumer not closed
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-02-28 11:45:31 -08:00
Derek Collison
b19fe508c4
Do not block routes/gws on internal stream and consumer info requests
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-02-28 11:17:29 -08:00
Derek Collison
2642a8c03d
Optimize locking for when under heavy loads.
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-02-27 18:56:55 -08:00
Derek Collison
13167f46b9
Optimize some locking for when under heavy loads.
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-02-27 18:56:55 -08:00
Derek Collison
395409e2cd
Fixed up consumer stream pending logic from merge with main.
...
Bumped version
Signed-off-by: Derek Collison <derek@nats.io >
2023-02-25 19:50:03 -08:00
Derek Collison
2463d83ad5
Merge branch 'main' into dev
2023-02-25 19:48:47 -08:00
Derek Collison
daacbf5580
Added optimized store NumPending() call.
...
Optimized and fixed a bug in filestore filteredPending().
Optimized memstore FilteredState().
Added comprehensive tests for NumPending() and FilteredState().
Signed-off-by: Derek Collison <derek@nats.io >
2023-02-25 17:26:26 -08:00
Derek Collison
7ce23c46ce
Merge branch 'main' into dev
2023-02-21 08:34:08 -08:00