Commit Graph

4659 Commits

Author SHA1 Message Date
Derek Collison
dee5229f9b Fix data race
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-06 10:37:31 -07:00
Derek Collison
7547093b24 _EMPTY_
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-06 08:38:30 -07:00
Derek Collison
1e80ea68b3 [IMPROVED] Optimize non-inline direct gets to not use simple go routines. (#4028)
This was causing regression in certain KV performance tests.

Signed-off-by: Derek Collison <derek@nats.io>
2023-04-06 08:35:37 -07:00
Derek Collison
2da50512e2 Optimize non-inline direct gets to not use simple go routines
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-06 07:50:57 -07:00
Derek Collison
7b82384fd7 ADDED hard_delete option on resolver configuration (#3783)
- [x] Link to issue, e.g. `Resolves #NNN`
 - [ ] Documentation added (if applicable)
 - [ ] Tests added
- [x] Branch rebased on top of current main (`git pull --rebase origin
main`)
- [x] Changes squashed to a single commit (described
[here](http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html))
 - [x] Build is green in Travis CI
- [x] You have certified that the contribution is your original work and
that you license the work to the project under the [Apache 2
license](https://github.com/nats-io/nats-server/blob/main/LICENSE)

Resolves #3782

### Changes proposed in this pull request:

- Add hard_delete option in the resolver config and use it to set the
deleteType in NewDirAccResolver

/cc @nats-io/core
2023-04-06 07:04:03 -07:00
Derek Collison
a5326c97ef [IMPROVED] Head of line improvements (#4027)
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-05 22:03:43 -07:00
Derek Collison
e76b0b9b96 Move check for out of resources which would want a read lock out of inline processing
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-05 20:28:19 -07:00
Derek Collison
b6ebf0fe43 RWMutex does not help here and could hurt
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-05 20:26:45 -07:00
Derek Collison
81541361dc Alternative fix for issue 4014, where we always send pings on ROUTER connections (#4016)
Alternative fix for issue
https://github.com/nats-io/nats-server/issues/4014: where we always send
pings for ROUTER, GATEWAY and LEAF spoke connections.

This is my own original work that I license to the project

[ x] Link to issue, e.g. Resolves #NNN
 Documentation added (if applicable)
 Tests added
[ x] Branch rebased on top of current main (git pull --rebase origin
main)
[ x] Changes squashed to a single commit (described
[here](http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html))
[x] Build is green in Travis CI
[ x] You have certified that the contribution is your original work and
that you license the work to the project under the [Apache 2
license](https://github.com/nats-io/nats-server/blob/main/LICENSE)
Resolves #

Changes proposed in this pull request:
- in processPingTimer, add explicit test for ROUTER connection, and only
hold off sending ping based on receive ping
2023-04-05 20:16:22 -07:00
Sandy Kellagher
5ae83b7983 Alternative fix for issue 4014, where we always send pings on ROUTER connections, updating c.lastIn timestamp on receiving client data or ping 2023-04-05 13:03:46 +01:00
Julien Viard de Galbert
1b1610f2da Adding hard_delete option on resolver configuration
Signed-off-by: Julien Viard de Galbert <jviarddegalbert@scaleway.com>
2023-04-05 10:05:48 +02:00
Derek Collison
d14968cb4f Bump to 2.9.16-RC.6
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-04 15:15:24 -07:00
Derek Collison
2167f39ccd [IMPROVED] Do not block routes, leafnodes or gateways on received internal system msgs. (#4026)
To increase system stability in large NATS systems we do not want to
process inbound system messages that are destined to be processed by the
server itself to be processed inline on the inbound connection.

Signed-off-by: Derek Collison <derek@nats.io>
2023-04-04 15:13:02 -07:00
Derek Collison
3036bb8bc5 Fix for test
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-04 14:43:46 -07:00
Derek Collison
b14a400df6 Fix for debugSubscribers and claims test
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-04 14:36:16 -07:00
Derek Collison
3551c7b2bf Convert over zReq to not have to call msgparts
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-04 14:23:50 -07:00
Derek Collison
c323ec3086 Non-inline system callbacks need hdr and msg already split due to client context to split
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-04 14:15:30 -07:00
Derek Collison
9f95e993e2 Do not inline inbound system messages to avoid blocking routes, gateways etc.
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-04 13:53:21 -07:00
Neil Twigg
03a5a4deaf Possibly de-race sysRequest
Signed-off-by: Neil Twigg <neil@nats.io>
2023-04-04 10:30:59 +01:00
Derek Collison
d5a525bde0 Bump to 2.9.16-RC.5
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-03 21:23:35 -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
b0c3cf0dbd Only apply consumer entries if not recovering
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-03 17:22:50 -07:00
Derek Collison
7d3ec51d79 Fix for flapping test
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-03 14:46:59 -07:00
Derek Collison
59175c491f Fix for a datarace
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-03 14:46:57 -07:00
Derek Collison
b806a8e7e7 Do not opt-out of normal processing for leadership transfers, but make sure they are only processed if explicitly new
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-03 14:46:55 -07:00
Derek Collison
9dd727034a Make sure to not stop raft layer when we detect we are already running the monitor
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-03 14:46:47 -07:00
Derek Collison
6b01a21965 No inline jetstream msg processing, always queue inbound
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-03 08:27:52 -07:00
Derek Collison
94278e731a More tweaks to test due to slow network proxy being more accurate
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-02 19:57:34 -07:00
Derek Collison
66e7b6f4bd Bump to 2.9.16-RC.4
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-02 19:49:53 -07:00
Derek Collison
5afcb6c13c Fix for flapping test, network proxy more accurate now so rtt needed to be tweaked
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-02 19:06:42 -07:00
Derek Collison
b2b3ed9a03 Cherry-pick #3733 (Refactor outbound queues, remove dynamic sizing, add buffer reuse) (#3965)
This brings #3733 forward from `dev` into `main`, to go into the next
release.

Signed-off-by: Neil Twigg <neil@nats.io>
2023-04-02 18:56:28 -07:00
Derek Collison
ff3f102cdd Fix for datarace in healthcheck
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-02 16:30:13 -07:00
Derek Collison
d5ac4d283a Fix for flapping test, can return invalid sequence as well
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-02 16:18:23 -07:00
Derek Collison
64b22011dc Better use of LoadAndStore based on review feedback
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-02 14:50:22 -07:00
Derek Collison
1fb1efd748 Make sure to remove any inflight entries when done
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-02 14:41:49 -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
f3cab83ccf Bump to 2.9.16-RC.3
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-02 04:24:21 -07:00
Derek Collison
58ca525b3b Process replicated ack regardless of store update. Delay but still stepdown
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-02 03:53:16 -07:00
Derek Collison
a8bd2793d5 Fix concurrent map bug on preAcks.
Use monitor check for streams like consumers.
Make sure to stop raft layer if exiting monitorConsumer early.
Allow consumers to force a snapshot on leadership change.

Signed-off-by: Derek Collison <derek@nats.io>
2023-04-02 03:53:11 -07:00
Derek Collison
874b2b2e02 Hold the lock while checking health since we could update catchup state.
Do not stepdown right away when executing leadership transfer, wait for the commit.

Signed-off-by: Derek Collison <derek@nats.io>
2023-04-02 03:53:08 -07:00
Derek Collison
b5358fa4b3 Wait for shutdown and sleep to let state build up
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-02 03:53:05 -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
e54019f87f All should be lowercase
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-02 03:53:01 -07:00
Derek Collison
872a9e7927 Add in monitor status similar to consumer
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-02 03:52:59 -07:00
Derek Collison
df4982948c Gate remove calls, disqualify delivered and ack updates quicker
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-02 03:52:56 -07:00
Derek Collison
4b8229ee42 Do not hold js lock for health check, use healthy not current for meta
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-02 03:52:54 -07:00
Derek Collison
e2839e9ec1 Fix for flapper
Signed-off-by: Derek Collison <derek@nats.io>
2023-04-02 03:52:43 -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