Commit Graph

1173 Commits

Author SHA1 Message Date
tidwall 9d9c2b9aeb Optimization for non-cross geofence detection
This commit fixes a performance issue with the algorithm that
determines with geofences are potential candidates for
notifications following a SET operation.

Details

Prior to commit b471873 (10 commits ago) there was a bug where
the "cross" detection was not firing in all cases. This happened
because when looking for candidates for "cross" due to a SET
operation, only the geofences that overlapped the previous
position of the object and the geofences that overlapped the new
position where searched. But, in fac, all of the geofences that
overlapped the union rectangle of the old and new position should
have been searched.

That commit fixed the problem by searching a union rect of the
old and new positions. While this is an accurate solution, it
caused a slowdown on systems that have big/wild position changes
that might cross a huge number of geofences, even when those
geofences did not need actually need "cross" detection.

The fix

With this commit the geofences that have a "cross" detection
are stored in a seperated tree from those that do not. This
allows for a hybrid of the functionality prior and post b471873.

Fixes #583
2021-07-08 06:34:47 -07:00
tidwall 14c553c9c5 Added tests 2021-07-08 06:34:47 -07:00
tidwall 28d11215d8 1.22.2 2021-07-08 06:34:47 -07:00
tidwall 2eb6da5f21 Truncate trailing zeros from AOF at startup
This commit addresses issue #230, where an AOF file will sometimes
not load due to the file being padded with trailing zeros. It's
uncertain what is causing this corruption, but it appears to be
coming from outside of the tile38-server process. I suspect it's
due to some block store layer in Kubernetes/Docker cloud
environments.

This fix allows for Tile38 to start up by discovering the trailing
zeros while loading the AOF and safely truncating the file as to
not include the zeros in the future.
2021-07-08 06:34:47 -07:00
tidwall b075cd0db8 Fixed typo 2021-07-08 06:34:47 -07:00
tidwall 02394e511e 1.22.1 2021-07-08 06:34:47 -07:00
tidwall a5b1f70610 Updated Go version 2021-07-08 06:34:47 -07:00
tidwall e00d9763a6 Updated dependencies 2021-07-08 06:34:44 -07:00
b3q 209f0d2238 Update README.md (Go client) 2021-07-08 06:34:15 -07:00
Nikola Kovacs d70f6a46f9 Fix typo in usage 2021-07-08 06:34:15 -07:00
tidwall 6aab7ee309 Fix "cross" detection on firing in some cases
Fixes #578
2021-07-08 06:34:15 -07:00
tidwall cc86deb462 1.22.0 2021-07-08 06:34:15 -07:00
tidwall 3d7242d06c Added MONITOR command
closes #571
2021-07-08 06:34:15 -07:00
tidwall 5f5c4d9f03 Limit geohash precision to 12 2021-07-08 06:34:15 -07:00
Terra Brown 019995e5f6 s/64/12/ 2021-07-08 06:34:15 -07:00
tidwall b606f23bd0 Hotfix for previous commit 2021-07-08 06:34:15 -07:00
tidwall 67abcefd25 Fixed wrong order for fields with SCAN
This commit fixes an issue that happens when running SCAN on a
collection that has objects with fields, causing field values
to be mismatched with their respective keys.

This only occured with json output, and is a regression from #534.

Fixes #569
2021-07-08 06:34:15 -07:00
tidwall 1477026721 Updated Kafka version 2021-07-08 06:34:15 -07:00
tidwall 03662bb1fb Updated Kafka client 2021-07-08 06:34:09 -07:00
Lars Wilhelmsen 47ac560f83 Fix crash in fenceMatchRoam causing an index out of range panic 2021-07-08 06:33:38 -07:00
tidwall b69736c675 1.21.1 2021-07-08 06:33:38 -07:00
tidwall 97c1ec5c5d Fix OUTPUT client command requiring authentication
This commit fixes an issue where the OUTPUT command requires
authentication when a server password has been set with
CONFIG SET requirepass. This was causing problems with clients
that use json responses, like the tile38-cli.

Fixes #564
2021-07-08 06:33:38 -07:00
tidwall e5c18bb84c 1.20.0 2021-07-08 06:33:38 -07:00
Josh e5f3224e08
Merge pull request #614 from tidwall/kafka-memory-leak
Kafka memory leak
2021-07-08 06:15:16 -07:00
Josh fa2c5da6d2
Merge pull request #615 from mathieux51/add-sasl-support
Add sasl_scram to Kafka provider.
2021-07-08 06:14:46 -07:00
Benjamin Ramser c47097acab Add option to select sha function 2021-07-08 12:52:16 +02:00
Benjamin Ramser ab89a79fae Leave ClientID default untouched 2021-07-08 12:26:58 +02:00
Benjamin Ramser aed3b1a95f Add endpoint option for sasl 2021-07-08 12:05:16 +02:00
Mathieu 7dddca165c Add sasl 2021-07-08 10:20:45 +02:00
tidwall ef5a428591 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-06-30 14:18:44 -07:00
tidwall df8d3d7b12 Close follower files before finishing aofshrink
fixes #449
2021-06-13 07:53:27 -07:00
tidwall 4490eba0fc 1.24.3 2021-06-09 10:59:07 -07:00
tidwall af43d5a7c7 Fix invalid healthz output 2021-06-09 10:55:07 -07:00
tidwall aaf306a54b 1.24.2 2021-06-07 10:46:41 -07:00
tidwall b6106338d9 Update Go version to 1.16 2021-06-07 10:42:51 -07:00
tidwall 179b2dfb7d 1.24.1 2021-06-07 10:33:10 -07:00
Josh Baker 9ee1d4a6e1
Merge pull request #609 from tidwall/healthz
Added HEALTHZ command
2021-06-07 07:39:01 -07:00
tidwall 27335c37f1 Always OK for leader 2021-05-25 16:42:26 -07:00
tidwall 30c3e81e0d 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-05-25 16:36:49 -07:00
tidwall 25ba82f41b 1.24.0 2021-05-19 17:11:57 -07:00
Josh Baker 559081e141
Merge pull request #604 from oliver006/oh_prometheus_metrics
Add prometheus metrics
2021-05-14 14:19:44 -07:00
Oliver 70f3188a91 add quick blurb to README 2021-05-13 21:39:26 -04:00
Oliver 56a0ad70c6 fix tests 2021-05-13 21:14:06 -04:00
Oliver de055384f9 add tests 2021-05-13 21:14:06 -04:00
Oliver 6b0282d960 add more metrics, add metrics index page 2021-05-13 21:14:05 -04:00
Oliver 7ec4d58392 cleanup / fix tests 2021-05-13 21:14:05 -04:00
Oliver c3d7b92026 don't rely on stats code for new metrics if we can avoid it 2021-05-13 21:14:05 -04:00
Oliver 30f7226705 add prometheus metrics endpoint 2021-05-13 21:14:04 -04:00
Oliver c78415e26e go fmt 2021-05-13 21:12:49 -04:00
Oliver 13ede90b02 vendor dir 2021-05-13 21:12:49 -04:00