Derek Collison
bcf5da04e3
Merge branch 'main' into dev
2023-08-22 06:50:36 -07:00
Derek Collison
e5d208bf33
When moving streams, we could check too soon and be in a gap where the replica peer has not registered a catchup request.
...
This would cause us to think the replica was caughtup incorrectly and drop our leadership, which would cancel any cacthup requests.
Signed-off-by: Derek Collison <derek@nats.io >
2023-08-21 20:07:48 -07:00
Derek Collison
fb8525b713
Merge branch 'main' into dev
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-08-21 15:55:00 -07:00
Derek Collison
43314fd439
Fix for a bug that would allow old leaders of pull based durables to delete a consumer from an inactivity threshold.
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-08-21 14:53:09 -07:00
Neil Twigg
c437157c1f
Recover in consumer assignment when asset already existed
...
Signed-off-by: Neil Twigg <neil@nats.io >
2023-08-17 23:22:10 +01:00
Neil Twigg
c0636d117f
Tweak consumer replica scaling, add unit test for orphaned consumer subjects
...
Signed-off-by: Neil Twigg <neil@nats.io >
2023-08-17 15:27:29 +01:00
Tomasz Pietrek
d105e68c96
Add consumer api action for create and update
...
Signed-off-by: Tomasz Pietrek <tomasz@nats.io >
2023-08-07 08:28:21 +02:00
Derek Collison
9d9d760af2
Merge branch 'main' into dev
2023-07-21 11:42:02 -07:00
Derek Collison
9280a552b8
Don't error to server logs if message deleted
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-07-20 14:07:35 -07:00
Derek Collison
a1f03513d8
Merge branch 'main' into dev
2023-06-09 09:29:13 -07:00
Derek Collison
9eeffbcf56
Fix performance issues with checkAckFloor.
...
Bail early if new consumer, meaning stream sequence floor is 0.
Decide which linear space to scan.
Do no work if no pending and we just need to adjust which we do at the end.
Also realized some tests were named wrong and were not being run, or were in wrong file.
Signed-off-by: Derek Collison <derek@nats.io >
2023-06-08 18:45:03 -07:00
Derek Collison
f342f6a758
Merge branch 'main' into dev
2023-06-05 14:13:18 -07:00
Derek Collison
4ac45ff6f3
When consumers were R1 and the same name was reused, server restarts could try to cleanup old ones and effect the new ones.
...
These changes allow consumer name reuse more effectively during server restarts.
Signed-off-by: Derek Collison <derek@nats.io >
2023-06-05 12:48:18 -07:00
Derek Collison
8278a7a0b2
Merge branch 'main' into dev
2023-06-02 12:44:02 -07:00
Derek Collison
27bbfb7a85
Only check ack floor if we are interest policy based.
...
Signed-off-by: Derek Collison <derek@nats.io >
2023-06-02 11:04:00 -07:00
R.I.Pienaar
c24547eb4e
Record the stream and consumer info timestamps ( #4133 )
...
This records the server time when info for streams and consumers are
created so that tools such as the nats cli can calculate time deltas for
last ack, last delivered and so forth in the context of the server
clock.
This will help aleviate problems with client devices experiencing clock
jitter that can show up in user interfaces as negative seconds since
last ack etc
2023-06-02 08:53:28 +03:00
Tomasz Pietrek
261f39bb7d
Make sure that o.subjf is nil or checked if empty
...
Signed-off-by: Tomasz Pietrek <tomasz@nats.io >
2023-06-01 08:29:09 +02:00
Tomasz Pietrek
a463dfe5c4
Improve consumer error handling
...
Signed-off-by: Tomasz Pietrek <tomasz@nats.io >
2023-06-01 08:29:03 +02:00
Tomasz Pietrek
9a792482e9
Improve consumer with multiple filters
...
Signed-off-by: Tomasz Pietrek <tomasz@nats.io >
2023-06-01 08:28:19 +02:00
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
R.I.Pienaar
fb1d86d506
Record the stream and consumer info timestamps
...
This records the server time when info for streams and
consumers are created so that tools such as the nats cli
can calculate time deltas for last ack, last delivered and
so forth in the context of the server clock.
This will help aleviate problems with client devices experiencing
clock jitter that can show up in user interfaces as negative
seconds since last ack etc
Signed-off-by: R.I.Pienaar <rip@devco.net >
2023-05-05 18:53:09 +02: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