Commit Graph

1161 Commits

Author SHA1 Message Date
tidwall 72b3683f27 1.26.1 2021-10-01 17:25:05 -07:00
tidwall 9e552c3629 Allow some basic client commands before AOF data loads
This commit accepts incoming connections even before the AOF
dataset has been loaded into memory. Though only a very limited
command set is allowed.

Allowed commands:
  PING, ECHO, OUTPUT, QUIT

All other commands will return:
  LOADING Tile38 is loading the dataset in memory

This is useful for establishing connections for the purpose of
checking process and network state.
2021-10-01 17:18:07 -07:00
tidwall a3c808e97f Increase verbosity for warning messages 2021-10-01 07:45:37 -07:00
tidwall 26f9678ba0 1.26.0 2021-09-29 11:21:30 -07:00
tidwall 6174c6434d Fix aofshrink panic
fixes #624
2021-09-29 11:15:53 -07:00
tidwall ad6e5aeab8 Merge branch 'iwpnd-feat/add-sector-area' 2021-09-29 07:20:27 -07:00
tidwall 03e596db8a 1.25.5 2021-09-29 07:19:00 -07:00
tidwall de59d23ac4 Fixed Z not matching on where clause Feature points.
This issues fixes an issue where a search command with a where
clause using the "z" field would not match correctly for point
that where contained inside a GeoJSON Feature type.

Tile38 now extracts the Z coordinate from Point and Feature/Point
types.

fixes #622
2021-09-29 07:19:00 -07:00
tidwall 4f4e168445 1.25.4 2021-09-29 07:19:00 -07:00
tidwall 19deea10c0 Use same input args for command functions 2021-09-29 07:19:00 -07:00
tidwall 7ff0d18868 Change hooks collection type from hashmap to btree
This commit changes the collection type that holds all of the
hooks from a hashmap to a btree. This allows for better
flexibility for operations that need to perform range searches
and scanning of the collection.
2021-09-29 07:19:00 -07:00
tidwall decafae2d7 Update hook expiration logic 2021-09-29 07:19:00 -07:00
tidwall 7e10a80319 Return hook ttl with HOOKS request 2021-09-29 07:19:00 -07:00
tidwall d38aed4d2b 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-29 07:19:00 -07:00
tidwall 81ed3e05ed Add unix socket flag to usage 2021-09-29 07:19:00 -07:00
tidwall 9b760ffdd5 Add unix socket support 2021-09-29 07:19:00 -07:00
Josh Baker 43f0fbe3d5 Create FUNDING.yml 2021-09-29 07:19:00 -07:00
tidwall f9e6f74753 Use struct for server options 2021-09-29 07:19:00 -07:00
tidwall 1a0c28ce69 1.25.5 2021-09-26 06:18:48 -07:00
tidwall 8ebcbebdd1 Fixed Z not matching on where clause Feature points.
This issues fixes an issue where a search command with a where
clause using the "z" field would not match correctly for point
that where contained inside a GeoJSON Feature type.

Tile38 now extracts the Z coordinate from Point and Feature/Point
types.

fixes #622
2021-09-26 06:09:43 -07:00
tidwall b3c036ac68 1.25.4 2021-09-14 12:25:23 -07:00
tidwall 18438e5783 Use same input args for command functions 2021-09-13 10:52:20 -07:00
tidwall 8829b8ffc3 Change hooks collection type from hashmap to btree
This commit changes the collection type that holds all of the
hooks from a hashmap to a btree. This allows for better
flexibility for operations that need to perform range searches
and scanning of the collection.
2021-09-13 10:02:36 -07:00
tidwall 83094b2740 Update hook expiration logic 2021-09-12 09:55:58 -07:00
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
Benjamin Ramser c87fd4836e test: add more tests 2021-09-05 12:56:45 +02:00
Benjamin Ramser 6eb1cca78c fix: point -> circle fallthrough 2021-09-05 12:05:33 +02:00
Benjamin Ramser bc62edb692 feat: add sector 2021-09-05 11:48:34 +02: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