1134 Commits

Author SHA1 Message Date
tidwall
c686b87dc2 Return hook ttl with HOOKS request 2021-09-12 09:03:05 -07:00
tidwall
06a92d8a21 Increase the precision of TIMEOUT
This commit ensures that the TIMEOUT is always checked prior to
returning data to the client, and that the elapsed command time
cannot be greater than the timeout value.
2021-09-08 11:07:07 -07:00
tidwall
a2b874ab9d Add unix socket flag to usage 2021-09-07 05:53:01 -07:00
tidwall
a737a78d6f Add unix socket support 2021-09-07 05:51:15 -07:00
Josh Baker
a828f6db4d
Create FUNDING.yml 2021-09-06 19:25:34 -07:00
tidwall
fc4a627aa6 Use struct for server options 2021-09-06 08:55:13 -07:00
tidwall
d95935124a 1.25.3 2021-08-23 07:39:12 -07:00
tidwall
768abd7c9c Update to Go 1.17 2021-08-23 07:34:34 -07:00
tidwall
b7674349cf Updated btree library 2021-08-23 07:33:57 -07:00
tidwall
c8389fe52c Fix memory leak with group id
This commit fixes a memory leak that was being caused by hooks
hanging on to the geofence group ids past the life of the object.
2021-08-20 05:00:14 -07:00
tidwall
3b77a24892 1.25.2 2021-08-10 19:21:19 -07:00
tidwall
5c21d1277f Update buntdb 2021-08-04 14:47:09 -07:00
Josh Baker
148d581dcf
Merge pull request #620 from iwpnd/master
kafka authentication methods
2021-08-04 14:31:04 -07:00
Benjamin Ramser
9ee91ca5c3 refactor: kafka auth 2021-08-03 14:46:40 +02:00
tidwall
17ab07bd3e Update tidwall dependencies 2021-07-31 07:45:09 -07:00
tidwall
694ad1fb62 Update btree/buntdb 2021-07-31 07:42:58 -07:00
tidwall
afd77d9448 Update nats-server dependency
Dependabot alert
2021-07-29 17:23:41 -07:00
tidwall
6e52e3a7eb 1.25.1 2021-07-22 08:43:58 -07:00
tidwall
401670e621 Fix NEARBY with SPARSE returning too many results
fixes #618
2021-07-22 08:39:57 -07:00
tidwall
d9164f3efc 1.25.0 2021-07-12 14:09:51 -07:00
tidwall
9e68703841 Update expiration logic
This commit changes the logic for managing the expiration of
objects in the database.

Before: There was a server-wide hashmap that stored the
collection key, id, and expiration timestamp for all objects
that had a TTL. The hashmap was occasionally probed at 20
random positions, looking for objects that have expired. Those
expired objects were immediately deleted, and if there was 5
or more objects deleted, then the probe happened again, with
no delay. If the number of objects was less than 5 then the
there was a 1/10th of a second delay before the next probe.

Now: Rather than a server-wide hashmap, each collection has
its own ordered priority queue that stores objects with TTLs.
Rather than probing, there is a background routine that
executes every 1/10th of a second, which pops the expired
objects from the collection queues, and deletes them.

The collection/queue method is a more stable approach than
the hashmap/probing method. With probing, we can run into
major cache misses for some cases where there is wide
TTL duration, such as in the hours or days. This may cause
the system to occasionally fall behind, leaving should-be
expired objects in memory. Using a queue, there is no
cache misses, all objects that should be expired will be
right away, regardless of the TTL durations.

Fixes #616
2021-07-12 13:37:50 -07:00
tidwall
3c699183e0 Additional KNN test 2021-07-11 14:49:23 -07:00
tidwall
dd4d31ae1b Fix last merge 2021-07-11 10:09:51 -07:00
tidwall
579a41abae Merge branch 'housecanary-fix-knn' 2021-07-11 10:02:59 -07:00
tidwall
991963268a Fix last merge 2021-07-10 19:32:21 -07:00
tidwall
f2bbf10c36 Merge branch 'mpoindexter-optimize-field-value-access' 2021-07-10 19:26:29 -07:00
tidwall
0d83b1ca53 Merge branch 'rshura-optimize-field-match' 2021-07-10 17:59:22 -07:00
Josh
1467cba769
Merge pull request #552 from rshura/clip-by
Add CLIPBY subcommand to INTERSECTS/WITHIN
2021-07-10 09:24:57 -07:00
Josh
43e2722574
Merge pull request #555 from housecanary/fix-clip-test
Fix clip test after geoOptions change.
2021-07-10 09:23:50 -07:00
tidwall
d2f747933f clear linter messages 2021-07-10 03:59:27 -07:00
Josh
d3d4694691
Merge pull request #504 from tidwall/nats-tls
Added TLS support for Nats webhook provider
2021-07-08 07:42:54 -07:00
tidwall
6c6e9b087b Merge branch 'mscno-feat/gcp-pubsub' 2021-07-08 07:37:36 -07:00
tidwall
e60cbac7cf Merge distance updates 2021-07-08 07:03:36 -07:00
tidwall
aea7d77de5 Fix Memory Leak in Kafka Producer
This commit addresses an issue where the sarama kafka library
leaks memory when a connection closes unless the metrics
configuration that was passed to new connection is also closed.

Fixes #613
2021-07-08 06:46:58 -07:00
tidwall
1497663b6d Close follower files before finishing aofshrink
fixes #449
2021-07-08 06:46:58 -07:00
Benjamin Ramser
bb2253204c Add option to select sha function 2021-07-08 06:46:57 -07:00
Benjamin Ramser
6dfcf896d4 Leave ClientID default untouched 2021-07-08 06:46:57 -07:00
Benjamin Ramser
e4b03ca174 Add endpoint option for sasl 2021-07-08 06:46:57 -07:00
Mathieu
55e503c378 Add sasl 2021-07-08 06:46:57 -07:00
tidwall
a087852d47 1.24.3 2021-07-08 06:46:57 -07:00
tidwall
f067e3ba67 Fix invalid healthz output 2021-07-08 06:46:57 -07:00
tidwall
3b3177963d 1.24.2 2021-07-08 06:46:57 -07:00
tidwall
f7a6850edb Update Go version to 1.16 2021-07-08 06:46:57 -07:00
tidwall
4d0abbb8a4 1.24.1 2021-07-08 06:46:57 -07:00
tidwall
87702b3e29 Always OK for leader 2021-07-08 06:46:57 -07:00
tidwall
5a37198602 Added HEALTHZ command
Returns 'ok' if the server is the leader or a follower with
a 'caught up' log.

This is mainly for HTTP connections that are using an
orchestration environment like kubernetes, but will work as a
general RESP command.

For HTTP a '200 OK' for 'caught up' and
'500 Internal Server Error' otherwise.

See #608
2021-07-08 06:46:57 -07:00
tidwall
d307d93c89 1.24.0 2021-07-08 06:46:57 -07:00
Oliver
caaeff346f add quick blurb to README 2021-07-08 06:46:57 -07:00
Oliver
fdc5de3e56 fix tests 2021-07-08 06:46:57 -07:00
Oliver
bfb9145849 add tests 2021-07-08 06:46:57 -07:00