Files
nats-server/server
Derek Collison 855f790e3c Improve performance and latency with large number of sparse consumers.
When a stream had a large number of consumers on a server that were sparse, the signaling mechanism would do a linear scan to signal matching consumers. As usage patterns have continued to have more consumers that are filteres and sparse, meaning a message is destined for a single or small number of consumers.

This change moves selection to a sublist that tracks only active consumer leaders for selection, which optimizes selection of consumers to signal when the number of consumers is large.

Signed-off-by: Derek Collison <derek@nats.io>
2022-12-13 10:09:59 -08:00
..
2022-10-28 17:59:07 +02:00
2022-07-05 09:33:12 +01:00
2022-11-27 19:49:52 -08:00
2022-11-21 22:22:45 -08:00
2022-12-07 13:01:06 -08:00
2022-09-08 11:28:23 -06:00
2022-12-08 09:49:23 -08:00
2021-11-15 17:23:08 -07:00
2022-07-05 09:28:00 +01:00
2021-11-15 17:23:08 -07:00
2022-12-10 10:33:25 -05:00
2022-11-28 09:20:14 -08:00
2022-11-14 08:28:19 -08:00
2022-09-27 19:43:32 -06:00
2022-03-17 17:53:06 -06:00
2022-09-08 11:28:23 -06:00
2022-11-28 09:20:14 -08:00
2022-11-27 19:49:52 -08:00
2022-11-03 13:01:35 -06:00
2022-12-09 11:53:52 +01:00
2022-11-27 19:49:52 -08:00
2022-12-06 04:03:55 -08:00
2022-09-08 11:28:23 -06:00
2022-11-08 09:36:08 -07:00
2022-12-06 05:10:15 -08:00
2022-03-17 17:53:06 -06:00
2022-11-25 11:10:01 -08:00
2021-11-15 17:23:08 -07:00
2021-11-15 17:23:08 -07:00
2022-07-05 09:33:12 +01:00
2021-09-01 14:55:26 -07:00
2022-07-05 09:28:00 +01:00
2022-10-28 20:16:40 +05:00
2022-10-28 11:36:46 +05:00
2022-03-25 12:11:55 -06:00

Tests

Tests that run on Travis have been split into jobs that run in their own VM in parallel. This reduces the overall running time but also is allowing recycling of a job when we get a flapper as opposed to have to recycle the whole test suite.

JetStream Tests

For JetStream tests, we need to observe a naming convention so that no tests are omitted when running on Travis.

The script runTestsOnTravis.sh will run a given job based on the definition found in ".travis.yml".

As for the naming convention:

  • All JetStream tests name should start with TestJetStream
  • Cluster tests should go into jetstream_cluster_test.go and start with TestJetStreamCluster
  • Super-cluster tests should go into jetstream_super_cluster_test.go and start with TestJetStreamSuperCluster

Not following this convention means that some tests may not be executed on Travis.