Commit Graph

4548 Commits

Author SHA1 Message Date
Derek Collison
ebe08040e9 Attempt to fix flapper again
Signed-off-by: Derek Collison <derek@nats.io>
2023-03-01 06:24:51 -08:00
Derek Collison
baca7bd751 Fix for test flapper
Signed-off-by: Derek Collison <derek@nats.io>
2023-03-01 04:58:01 -08:00
Derek Collison
9f1580686a Revert behavior for JetStream published directly from client to be handled inline.
Signed-off-by: Derek Collison <derek@nats.io>
2023-03-01 04:35:52 -08:00
Derek Collison
8f7a88103b Merge pull request #3926 from nats-io/fix-3924
[FIXED] Fix for MQTT Spec 4.7.2-1 violation
2023-02-28 21:58:24 -08:00
Derek Collison
d9933b1f7a Fix for MQTT Spec 4.7.2-1
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-28 20:43:46 -08:00
Jeremy Saenz
26f241cb62 Updated LEAFZ names to use remoteServer name/id and added is_spoke 2023-02-28 18:09:24 -08:00
Derek Collison
95ed471866 Bump to 2.9.15-RC.3
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-28 14:56:56 -08:00
Derek Collison
321afe6aee Merge pull request #3923 from nats-io/JMS-LeafZNames
Update LEAFZ to include leafnode server/connection name
2023-02-28 14:54:43 -08:00
Derek Collison
d920ca6319 Merge pull request #3922 from nats-io/stress-perf
[IMPROVED] Performance and Stability under heavy IO loads.
2023-02-28 14:49:36 -08:00
Derek Collison
1956fa3e23 Signal a metasnapshot for consumer deletes as well
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-28 14:30:23 -08:00
Derek Collison
724160ebac Fix flapping tests
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-28 14:30:23 -08:00
Jeremy Saenz
9d4a603aaf Update LEAFZ to include leafnode server/connection name 2023-02-28 14:20:18 -08:00
Derek Collison
bab10c1ecb Revert closeAndKeepIndex behavior
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-28 13:39:24 -08:00
Derek Collison
68cd312870 Be more conservative on defaultMaxTotalCatchupOutBytes, default to 64M
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-28 13:28:09 -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
6bda358fa3 Fix tests that made assumptions about single server processing.
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-28 13:24:18 -08:00
Derek Collison
3807441fd7 Always process inbound messages in separate execution context.
Do not duplicate work on leader, sealed and clustered state.

Signed-off-by: Derek Collison <derek@nats.io>
2023-02-28 11:45:31 -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
adbb50fc21 Fixed dios capacity to 4 due to testing under heavy load.
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
bee149b458 Only need server's rlock here.
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-28 11:17:29 -08:00
Tomasz Pietrek
10c2c387b7 Fix panic if serviceExport is nil
Signed-off-by: Tomasz Pietrek <tomasz@nats.io>
2023-02-28 15:36:37 +01:00
Tomasz Pietrek
8732022d26 Fix JWT claims update if headers are passed in request
Claims update message requires only payload to be passed,
but passing headers should not fail the request.
This change ensures we extract payload from raw message
before decoding it.
Before this change, passing claims update with headers
would return cryptic `expected x chunks` error.

Signed-off-by: Tomasz Pietrek <tomasz@nats.io>
2023-02-28 11:09:18 +01:00
Derek Collison
aad8aa6f21 Do not need lock to grab js here
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-27 18:56:55 -08:00
Derek Collison
fa8afba68f Only warn on write errors if not closed in case they linger under pressure and blocking on dios
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-27 18:56:55 -08:00
Derek Collison
576d31748f Sometimes do force meta snapshot
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-27 18:56:55 -08:00
Derek Collison
6078706544 Fixup test for new parameters
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-27 18:56:55 -08:00
Derek Collison
9721309601 Do not allow meta snapshot processing during recovery to override.
Make sure to process all stream updates during recovery through the ru structure.

Signed-off-by: Derek Collison <derek@nats.io>
2023-02-27 18:56:55 -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
3cebd26ef9 Optimize for high IO workloads. When we know optional metadata will always be correct on restart do not require inline IO all the time.
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-27 18:56:55 -08:00
Derek Collison
2711460b7b Prevent benign spin between competing leaders with same index but differen term.
Remove lock from route processing for updating peers progress, altready handled in trackPeer.

Signed-off-by: Derek Collison <derek@nats.io>
2023-02-27 11:21:33 -08:00
Derek Collison
43916290df Make minimum snapshot time for all assets 10s.
Do not lock on clustered test for JetStream, not needed.

Signed-off-by: Derek Collison <derek@nats.io>
2023-02-27 11:20:37 -08:00
Waldemar Quevedo
74b703549d Add raft query parameter to /jsz to include raft group info
Signed-off-by: Waldemar Quevedo <wally@nats.io>
2023-02-27 05:42:11 -08:00
Derek Collison
4fa0ea32c3 [FIXED] If a truncate for a raft WAL failed we could spin.
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-25 19:07:27 -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
24c2f3b452 Improved performance of subjects details for stream info.
This version avoids all disk IO in the filestore version.

Signed-off-by: Derek Collison <derek@nats.io>
2023-02-24 17:22:18 -08:00
Derek Collison
87a1846822 Merge pull request #3907 from nats-io/raft-fix
[FIXED] Snapshots would not compact through applied.
2023-02-23 22:44:45 -08:00
Derek Collison
ea2bfad8ea Fixed bug where snapshot would not compact through applied. This mean a subsequent request for exactly applied would return that entry only not the full state snapshot.
Fixed bug where we would not snapshot when we should.

Signed-off-by: Derek Collison <derek@nats.io>
2023-02-23 22:19:37 -08:00
Tomasz Pietrek
02ba78454d Fix new replicas late MaxAge expiry
This commit fixes the issue when scaling Stream with MaxAge
and some older messages stored. Until now, old messages were not properly
expired on new replicas, because new replicas first expiry timer
was set to MaxAge duration.
This commit adds a check if received messages expiry happens before
MaxAge, meaning they're messages older than the replica.
https://github.com/nats-io/nats-server/issues/3848

Signed-off-by: Tomasz Pietrek <tomasz@nats.io>
2023-02-24 00:46:02 +01:00
Derek Collison
45859e6476 Make sure preferred peer for stepdown is healthy.
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-23 13:06:13 -08:00
Derek Collison
d347cb116a When becoming leader optionally send current snapshot to followers if caught up.
This can help sync on restarts and improve ghost ephemerals. Also added more code to suppress respnses and API audits when we know we are recovering.

Signed-off-by: Derek Collison <derek@nats.io>
2023-02-23 10:30:36 -08:00
Derek Collison
f2c5e7ec02 Bump to 2.9.15-RC.2
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-22 19:54:13 -08:00
Derek Collison
2972c11be6 Improve consumer create performance.
In cases where we had a large subject space, a filestore with many msg blocks, and a filtered consumer with a wildcard filtered subject, creating a consumer could take more memory and time then we wanted.
This improvement works when the consumer is DeliverAll and we used the upper layer in memory psim structure to scan but only in memory and avoid a file read for each msg block.

Signed-off-by: Derek Collison <derek@nats.io>
2023-02-22 19:42:02 -08:00
Derek Collison
f16a7d8559 Skip test for now
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-22 15:49:48 -08:00
Derek Collison
d03d8e9d93 When having a max msgs per subject (e.g. KV) under heavy concurrent usage could skew the accounting for the underlying filestore.
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-22 12:50:43 -08:00
Neil Twigg
cfea34c80c Install snapshot and compact when WAL grows, even when no state changes occur 2023-02-22 20:00:57 +00:00
Derek Collison
b19077c2e9 Bump to 2.9.15-RC.1
Signed-off-by: Derek Collison <derek@nats.io>
2023-02-21 08:35:30 -08:00
Neil Twigg
68961ffedd Refactor ipQueue to use generics, reduce allocations 2023-02-21 14:50:09 +00:00
Derek Collison
18b5aca499 Merge pull request #3892 from nats-io/consumer-fixes
[FIXED] Consumer fixes and improvements on state management.
2023-02-20 19:17:39 -07:00