1215 Commits

Author SHA1 Message Date
Josh Baker
69ecc04928
Update README.md 2020-11-03 12:24:51 -07:00
tidwall
982980789b 1.22.3 2020-10-28 08:46:45 -07:00
tidwall
79bee8523b Updated btree deps 2020-10-27 15:29:50 -07:00
tidwall
9998e03f6f 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
2020-10-23 09:51:27 -07:00
tidwall
100be7be3c Added tests 2020-10-23 09:50:51 -07:00
tidwall
5b77c446a7 1.22.2 2020-10-07 10:12:47 -07:00
tidwall
93e3a067b7 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.
2020-10-07 09:52:32 -07:00
tidwall
3f87be18b4 Fixed typo 2020-09-22 16:55:31 -07:00
tidwall
8e35787e68 1.22.1 2020-09-22 16:52:03 -07:00
tidwall
9a34a378bb Updated Go version 2020-09-22 16:50:49 -07:00
tidwall
b1dc463c41 Updated dependencies 2020-09-22 16:43:58 -07:00
tidwall
43cd87dc3a Merge branch 'master' of https://github.com/tidwall/tile38 2020-09-22 16:26:58 -07:00
Josh Baker
5edfccdc49
Merge pull request #563 from axvq/readme-b3q-go-client
Update README.md (Go client)
2020-09-22 16:24:52 -07:00
Josh Baker
ad7c672a98
Merge pull request #575 from nkovacs/patch-1
Fix typo in usage
2020-09-22 16:24:17 -07:00
tidwall
b47187349b Fix "cross" detection on firing in some cases
Fixes #578
2020-09-22 16:19:49 -07:00
Nikola Kovacs
8b271d1e0b
Fix typo in usage 2020-08-17 10:18:17 +02:00
tidwall
bd572b0d38 1.22.0 2020-08-12 12:50:13 -07:00
tidwall
d819db5f8b Added MONITOR command
closes #571
2020-08-12 12:38:52 -07:00
tidwall
9093926135 Limit geohash precision to 12 2020-08-12 10:58:49 -07:00
tidwall
25a954a6aa Merge branch 'superloach-master' 2020-08-12 10:57:49 -07:00
Terra Brown
9202fd0206
s/64/12/ 2020-08-11 18:11:06 -04:00
tidwall
f23b46cfc0 Hotfix for previous commit 2020-07-04 10:35:07 -07:00
tidwall
f3622c3756 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
2020-07-04 10:12:06 -07:00
tidwall
68e2b6d736 Updated Kafka version 2020-07-03 11:57:15 -07:00
tidwall
712da8aefa Updated Kafka client 2020-06-24 14:20:22 -07:00
Josh Baker
6629eba8bf
Merge pull request #566 from larsw/larsw/fencing-crash-fix
Fix crash in fenceMatchRoam causing an index out of range panic
2020-06-24 09:48:44 -07:00
Lars Wilhelmsen
4fdbade7a4
Fix crash in fenceMatchRoam causing an index out of range panic 2020-06-18 15:43:18 +02:00
tidwall
c1ba2d86aa 1.21.1 2020-06-04 13:01:30 -07:00
tidwall
b7978f2cf4 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
2020-06-04 12:57:23 -07:00
b3q
b2cf3c7f11
Update README.md (Go client) 2020-06-04 01:19:18 +05:00
Mads Schou-Andreasen
cf757802a3 fixed default credentials 2020-05-30 10:26:25 +02:00
tidwall
9c6be0f78e 1.20.0 2020-05-20 15:28:07 -07:00
Mads Schou-Andreasen
846386c7ff Revert "gitlab fixes"
This reverts commit 8ae46dfda38c8b4f275fc68ff88ad83f41fafa7f.
2020-05-20 00:27:20 +02:00
Mads Schou-Andreasen
3bfd188c9c Revert "gitlab fixes 2"
This reverts commit 464d7845eac7cd2e2266cfbdaeedaf7138e78c8c.
2020-05-20 00:27:16 +02:00
Mads Schou-Andreasen
464d7845ea gitlab fixes 2 2020-05-20 00:13:40 +02:00
Mads Schou-Andreasen
8ae46dfda3 gitlab fixes 2020-05-20 00:06:08 +02:00
Mads Schou-Andreasen
bff11ad0ae minor documentation fix 2020-05-19 17:24:06 +02:00
Mads Schou-Andreasen
37224791f4 added geofence webhook for GCP Pubsub 2020-05-19 17:11:31 +02:00
tidwall
3718cd766b Added priority option for AMQP endpoints 2020-05-16 14:31:52 -07:00
tidwall
70cd167fc0 Fixed clip test #558 2020-05-03 09:59:49 -07:00
Alex Roitman
25579a052c Fix a bug in WHEREIN -- 0 values would always match, incorrectly. 2020-04-12 16:06:10 -07:00
Alex Roitman
914f51de11 Fixes 2020-04-09 09:59:24 -07:00
Alex Roitman
fe0216c42c Restore previous behavior where non-existing fields are treated as zero-value. 2020-04-09 09:54:47 -07:00
Alex Roitman
f3cc365d24 Pre-allocate where and wherein arrays. 2020-04-09 09:36:12 -07:00
Alex Roitman
1dd1af268a Fix clip test after geoOptions change. 2020-04-08 14:26:27 -07:00
Mike Poindexter
042582aef3 Update comment 2020-04-08 11:38:12 -07:00
Mike Poindexter
fe6e3863ba Add bench tests for knn 2020-04-08 11:36:37 -07:00
Mike Poindexter
2a4272c95f Improve kNN behavior
The current KNN implementation has two areas that can be improved:

- The current behavior is somewhat incorrect. When performing a kNN
query, the current code fetches k items from the index, and then sorts
these items according to Haversine distance. The problem with this
approach is that since the items fetched from the index are ordered by
a Euclidean metric, there is no guarantee that item k + 1 is not closer
than item k in great circle distance, and hence incorrect results can be
returned when closer items beyond k exist.

- The secondary sort is a performance killer. This requires buffering
all k items (again...they were already run through a priority queue in)
the index, and then a sort. Since the items are mostly sorted, and
Go's sort implementation is a quickSort this is the worst case for the
sort algorithm.

Both of these can be fixed by applying a proper distance metric in
the index nearby operation. In addition, this cleans up the code
considerably, removing a number of special cases that applied only
to NEARBY operations.

This change implements a geodetic distance metric that ensures that
the order from the index is correct, eliminating the need for the
secondary sort and special filtering cases in the ScanWriter code.
2020-04-07 20:10:58 -07:00
Alex Roitman
34cb2affdc Add clipby subcommand to INTERSECTS/WITHIN 2020-04-03 16:49:06 -07:00
Josh Baker
f02dee3db2
Merge pull request #545 from tidwall/index-kind-geometry-nooverride
Match geometry indexing to server config
2020-04-02 08:15:38 -07:00