antmanler
24ab33b879
Add a simple test for Sublist.All
2019-07-10 22:32:15 +08:00
Derek Collison
8168aa1f81
Allow sublist cache do be disabled globally
...
Signed-off-by: Derek Collison <derek@nats.io >
2019-07-02 07:34:02 -07:00
Derek Collison
acc1031705
Protect stats when no cache is present
...
Signed-off-by: Derek Collison <derek@nats.io >
2019-07-02 05:47:39 -07:00
Derek Collison
da2dab92d1
Allow disabling of shared cache with new constuctor. Also share empty results.
...
Signed-off-by: Derek Collison <derek@nats.io >
2019-04-22 17:53:14 -07:00
Ivan Kozlovic
dba4cfa791
Initialized the sublist for benchmark tests only when needed
...
This saves a lot of memory and init time when running non benchmark
tests in race mode.
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2018-12-01 12:12:45 -07:00
Derek Collison
574fd62e01
Allow servers to send and receive messages directly
...
Signed-off-by: Derek Collison <derek@nats.io >
2018-11-29 12:15:08 -08:00
Derek Collison
a2e310ffc1
Vendor jwt, fixes for nkey, jwt changes
...
Signed-off-by: Derek Collison <derek@nats.io >
2018-11-21 19:22:04 -08:00
Derek Collison
47963303f8
First pass at new cluster design
...
Signed-off-by: Derek Collison <derek@nats.io >
2018-10-24 21:29:29 -07:00
Derek Collison
620e1d7364
Basic account mapping via import and export
...
Signed-off-by: Derek Collison <derek@nats.io >
2018-09-29 13:04:19 +02:00
Ivan Kozlovic
156224a85b
Fix sublist cache flapping test
...
Use `checkFor` to ensure that cache size is ok. Repeated test
1000 times and no failure now.
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2018-08-27 15:01:38 -06:00
Derek Collison
2c4b7e7d54
Let cache sweeper run
...
Signed-off-by: Derek Collison <derek@nats.io >
2018-08-27 12:56:28 -06:00
Derek Collison
ad3a1506d3
Move test into cache test, make sure it fails
...
Signed-off-by: Derek Collison <derek@nats.io >
2018-08-27 12:49:29 -06:00
Derek Collison
ab9e4c7d8a
Fix for wildcard cache addition
...
Signed-off-by: Derek Collison <derek@nats.io >
2018-08-27 12:28:32 -06:00
Derek Collison
d21ac8de35
Use sync.Map for cache, fast version of literal test
...
Signed-off-by: Derek Collison <derek@nats.io >
2018-08-25 17:42:36 -07:00
Derek Collison
543d403337
Optimize sublist cache, add tests for cache contention
...
Signed-off-by: Derek Collison <derek@nats.io >
2018-08-25 14:33:15 -07:00
Derek Collison
8502fb1edc
Add fast slice for large psubs for Match
...
Signed-off-by: Derek Collison <derek@nats.io >
2018-06-04 17:45:05 -07:00
Derek Collison
b9c73e96ee
Changed sublist to avoid quadratic time in removal with large N
...
Signed-off-by: Derek Collison <derek@nats.io >
2018-06-04 17:45:05 -07:00
Derek Collison
00901acc78
Update license to Apache 2
2018-03-15 22:31:07 -07:00
Ivan Kozlovic
3bfb2d7cb4
Variant of copy and add some tests
...
Use the append([]*subscription(nil), qr...) notation instead of
make()+copy().
2018-03-15 14:54:10 -06:00
Ivan Kozlovic
668229fc1d
[FIXED] RACE between sublist remove and go through match results
...
This would manifest for instance when server tries to send messages
to queue subscribers and a subscription is unsubsribed at the same
time.
Resolves #640
2018-03-09 19:05:33 -07:00
Ivan Kozlovic
8ec1f77ac8
[FIXED] Sublist Insert and Remove with wildcard characters in literals
...
This is similar to #561 where `*` and `>` characters appear in tokens
as literals, not wilcards.
Both Insert() and Remove() were checking that the first character
was `*` or `>` and consider it a wildcard node. This is wrong. Any
token that is more than 1 character long must be treated as a literal.
Only for token of size one should we check if the character is `*`
or `>`.
Added a test case for Insert and Remove with subject like `foo.*-`
or `foo.>-`.
2017-08-31 18:48:45 -06:00
Ivan Kozlovic
0cc49ece4a
Improve matchLiteral further and add some more tests
2017-08-17 13:00:09 -06:00
Ivan Kozlovic
30eeac27e9
add matchLiteral benchmark
2017-08-16 16:28:24 -06:00
Ivan Kozlovic
515779ae0b
[FIXED] Use of * and > in subjects as literals
...
The issue was that a subject such as `foo.bar,*,>` would be
inserted to the cache as is, but when trying to remove from the
cache, calling matchLiteral() with the above subject in the cache
against the same subject would return false. This is because
matchLiteral would treat those characters as wildcards token.
Note that the sublist itself splits subjects on the `.` separator
and seem not bothered by such subject (would have `foo` and `bar,*,>`
tokens). Also, note that IsValidSubject() and IsValidLiteralSubject()
properly checked that the characters `*` and `>` are treated
as wildcards only if they are tokens on their own.
Resolves #558
2017-08-16 12:12:18 -06:00
Ivan Kozlovic
20926a6176
Added megacheck
...
This tool combines staticcheck, gosimple and unused.
Fixed reports from unused.
2017-08-11 17:28:18 -06:00
Derek Collison
f7ba3d175e
Correct invocation of misspell with fixes
2017-04-21 09:21:33 -07:00
Derek Collison
96d9ce5048
Queue subscriber performance
...
Reworked sublist to sort out normal subscribers from queue subscribers into
a result set that can be cached and easily iterated over.
2016-04-03 13:04:06 -07:00
Derek Collison
df02bc0bcf
Removed sublist, hash and hashmap, no longer needed.
2016-04-02 12:52:48 -07:00